Browse Source

fixed CS, added exception check

tags/2.0.0-beta
Mark 11 years ago
parent
commit
467254a30e
  1. 36
      extensions/yii/faker/FixtureController.php

36
extensions/yii/faker/FixtureController.php

@ -16,7 +16,7 @@ use yii\helpers\Console;
* This command manage fixtures creations based on given template. * This command manage fixtures creations based on given template.
* *
* Fixtures are one of the important paths in unit testing. To speed up developers * Fixtures are one of the important paths in unit testing. To speed up developers
* work this fixtures can be generated automatically, based on prepared template. * work these fixtures can be generated automatically, based on prepared template.
* This command is a simple wrapper for the fixtures library [Faker](https://github.com/fzaninotto/Faker). * This command is a simple wrapper for the fixtures library [Faker](https://github.com/fzaninotto/Faker).
* *
* You should configure this command as follows (you can use any alias, not only "faker:fixture"): * You should configure this command as follows (you can use any alias, not only "faker:fixture"):
@ -49,9 +49,9 @@ use yii\helpers\Console;
* ~~~ * ~~~
* *
* If you use callback as a attribute value, then it will be called as shown with three parameters: * If you use callback as a attribute value, then it will be called as shown with three parameters:
* * $fixture - current fixture array. * - $fixture - current fixture array.
* * $faker - faker generator instance * - $faker - faker generator instance
* * $index - current fixture index. For example if user need to generate 3 fixtures for tbl_user, it will be 0..2 * - $index - current fixture index. For example if user need to generate 3 fixtures for tbl_user, it will be 0..2
* After you set all needed fields in callback, you need to return $fixture array back from the callback. * After you set all needed fields in callback, you need to return $fixture array back from the callback.
* *
* After you prepared needed templates for tables you can simply generate your fixtures via command * After you prepared needed templates for tables you can simply generate your fixtures via command
@ -161,7 +161,7 @@ class FixtureController extends \yii\console\controllers\FixtureController
* More info in [Faker](https://github.com/fzaninotto/Faker.) library docs. * More info in [Faker](https://github.com/fzaninotto/Faker.) library docs.
* @var array * @var array
*/ */
public $providers = array(); public $providers = [];
/** /**
* Faker generator instance * Faker generator instance
@ -202,13 +202,20 @@ class FixtureController extends \yii\console\controllers\FixtureController
$templatePath = Yii::getAlias($this->templatePath); $templatePath = Yii::getAlias($this->templatePath);
$fixturesPath = Yii::getAlias($this->fixturesPath); $fixturesPath = Yii::getAlias($this->fixturesPath);
if ($this->needToGenerateAll($file)) if ($this->needToGenerateAll($file)) {
$files = FileHelper::findFiles($templatePath, ['only' => ['.php']]); $files = FileHelper::findFiles($templatePath, ['only' => ['.php']]);
else } else {
$files = FileHelper::findFiles($templatePath, ['only' => [$file.'.php']]); $files = FileHelper::findFiles($templatePath, ['only' => [$file.'.php']]);
}
foreach ($files as $templateFile) if (empty($files)) {
{ throw new Exception(
"No files were found by name: \"{$file}\". \n"
. "Check that template with these name exists, under template path: \n\"{$templatePath}\"."
);
}
foreach ($files as $templateFile) {
$fixtureFileName = basename($templateFile); $fixtureFileName = basename($templateFile);
$template = $this->getTemplate($templateFile); $template = $this->getTemplate($templateFile);
$fixtures = []; $fixtures = [];
@ -229,9 +236,8 @@ class FixtureController extends \yii\console\controllers\FixtureController
*/ */
public function getGenerator() public function getGenerator()
{ {
if (is_null($this->_generator)) if (is_null($this->_generator)) {
{ //replacing - on _ because Faker support only en_US format and not intl
#replacing - on _ because Faker support only en_US format and not intl
$language = is_null($this->language) ? str_replace('-','_', Yii::$app->language) : $this->language; $language = is_null($this->language) ? str_replace('-','_', Yii::$app->language) : $this->language;
$this->_generator = \Faker\Factory::create($language); $this->_generator = \Faker\Factory::create($language);
@ -247,18 +253,20 @@ class FixtureController extends \yii\console\controllers\FixtureController
{ {
$path = Yii::getAlias($this->templatePath); $path = Yii::getAlias($this->templatePath);
if (!is_dir($path)) if (!is_dir($path)) {
throw new Exception("The template path \"{$this->templatePath}\" not exist"); throw new Exception("The template path \"{$this->templatePath}\" not exist");
} }
}
/** /**
* Adds users providers to the faker generator. * Adds users providers to the faker generator.
*/ */
public function addProviders() public function addProviders()
{ {
foreach($this->providers as $provider) foreach($this->providers as $provider) {
$this->generator->addProvider(new $provider($this->generator)); $this->generator->addProvider(new $provider($this->generator));
} }
}
/** /**
* Checks if needed to generate all fixtures. * Checks if needed to generate all fixtures.

Loading…
Cancel
Save