From 86cdc6867a96702d0b705c5b517d62d57bdc9cd3 Mon Sep 17 00:00:00 2001 From: Tickles Bv Date: Mon, 13 Nov 2017 14:22:34 +0100 Subject: [PATCH 1/2] Centralize faker initialization calls to single method, add localization logic --- .../community/Ovs/Magefaker/Model/Faker.php | 50 +++++++++++++------ 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/app/code/community/Ovs/Magefaker/Model/Faker.php b/app/code/community/Ovs/Magefaker/Model/Faker.php index f6f0ea6..3fbde3b 100644 --- a/app/code/community/Ovs/Magefaker/Model/Faker.php +++ b/app/code/community/Ovs/Magefaker/Model/Faker.php @@ -73,10 +73,7 @@ public function insertCategories($count, $parentId, $customNames, $anchor, $thum } } } else { - $faker = new Faker\Generator(); - $faker->addProvider(new Faker\Provider\en_US\Person($faker)); - $faker->addProvider(new Faker\Provider\Lorem($faker)); - $faker->addProvider(new Faker\Provider\MageFaker($faker)); + $faker = $this->_getFakerInstance(); for ($i = 0; $i < $count; $i++) { $this->_insertCategory($faker->categoryName(), $parentId, $anchor, $thumbnail); @@ -102,10 +99,7 @@ protected function insertProduct($categories, $type, $incReviews, $color_value = { Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); - $faker = new Faker\Generator(); - $faker->addProvider(new Faker\Provider\en_US\Person($faker)); - $faker->addProvider(new Faker\Provider\Lorem($faker)); - $faker->addProvider(new Faker\Provider\MageFaker($faker)); + $faker = $this->_getFakerInstance(); $name = $faker->productName; $sku = $faker->sku($name); @@ -325,10 +319,7 @@ protected function insertProduct($categories, $type, $incReviews, $color_value = protected function _insertCategory($name, $parentId, $anchor, $thumbnail) { try { - $faker = new Faker\Generator(); - $faker->addProvider(new Faker\Provider\en_US\Person($faker)); - $faker->addProvider(new Faker\Provider\Lorem($faker)); - $faker->addProvider(new Faker\Provider\MageFaker($faker)); + $faker = $this->_getFakerInstance(); $parentCategory = Mage::getModel('catalog/category')->load($parentId); @@ -424,10 +415,8 @@ protected function _insertAttribute($code, $input, $optionValues, $defaultValue, */ protected function _addProductReviews($productId) { - $faker = new Faker\Generator(); - $faker->addProvider(new Faker\Provider\en_US\Person($faker)); - $faker->addProvider(new Faker\Provider\Lorem($faker)); + $faker = $this->_getFakerInstance(); $reviewCount = mt_rand(0, 10); $rating_options = [ @@ -462,4 +451,35 @@ protected function _addProductReviews($productId) $review->aggregate(); } } + + /** + * Return a new faker instance with the locale set to the current + * admin interface locale. This is only used by the review generator. + * + * This function is basically a reimplementation of \Faker\Factory::create($locale); + * which does not seem to play nice with the Varien autoload implementation. + * + * @return \Faker\Generator + */ + + protected function _getFakerInstance() + { + $fallbackLocale = 'en_US'; + $currentLocale = Mage::app()->getLocale()->getLocaleCode(); + + $faker = new Faker\Generator(); + + if(class_exists("Faker\Provider\\${currentLocale}\Person")) { + $fakerPerson = "Faker\Provider\\${currentLocale}\Person"; + } else { + $fakerPerson = "Faker\Provider\\${$fallbackLocale}\Person"; + } + + $faker->addProvider(new $fakerPerson($faker)); + $faker->addProvider(new Faker\Provider\Lorem($faker)); + $faker->addProvider(new Faker\Provider\MageFaker($faker)); + + return $faker; + + } } From bcd17f749965505f4ce5b0be74ce502f20f4f513 Mon Sep 17 00:00:00 2001 From: Tickles Bv Date: Mon, 13 Nov 2017 14:32:06 +0100 Subject: [PATCH 2/2] Change code according to required style & format --- app/code/community/Ovs/Magefaker/Model/Faker.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/code/community/Ovs/Magefaker/Model/Faker.php b/app/code/community/Ovs/Magefaker/Model/Faker.php index 3fbde3b..224e108 100644 --- a/app/code/community/Ovs/Magefaker/Model/Faker.php +++ b/app/code/community/Ovs/Magefaker/Model/Faker.php @@ -415,7 +415,6 @@ protected function _insertAttribute($code, $input, $optionValues, $defaultValue, */ protected function _addProductReviews($productId) { - $faker = $this->_getFakerInstance(); $reviewCount = mt_rand(0, 10); @@ -461,7 +460,6 @@ protected function _addProductReviews($productId) * * @return \Faker\Generator */ - protected function _getFakerInstance() { $fallbackLocale = 'en_US'; @@ -469,7 +467,7 @@ protected function _getFakerInstance() $faker = new Faker\Generator(); - if(class_exists("Faker\Provider\\${currentLocale}\Person")) { + if (class_exists("Faker\Provider\\${currentLocale}\Person")) { $fakerPerson = "Faker\Provider\\${currentLocale}\Person"; } else { $fakerPerson = "Faker\Provider\\${$fallbackLocale}\Person"; @@ -480,6 +478,5 @@ protected function _getFakerInstance() $faker->addProvider(new Faker\Provider\MageFaker($faker)); return $faker; - } }