33namespace  console \commands ;
44
55use  Yii ;
6+ use  yii \base \ExitException ;
67use  yii \base \Model ;
78use  yii \console \Controller ;
89use  yii \console \ExitCode ;
1516 */ 
1617class  FakerController extends  Controller
1718{
19+  /** 
20+  * @throws ExitException when not in debug mode. 
21+  */ 
22+  public  function  beforeAction ($ action
23+  {
24+  if  (!YII_DEBUG ) {
25+  $ this stdout ('Faker command can only be used in development environment! '  . PHP_EOL , Console::BOLD , Console::FG_RED );
26+  throw  new  ExitException (ExitCode::UNSPECIFIED_ERROR );
27+  }
28+  return  parent ::beforeAction ($ action
29+  }
30+ 1831 /** 
1932 * Fill tables with fake data 
2033 */ 
2134 public  function  actionIndex ()
2235 {
23-  $ fakersfindFiles (\Yii::getAlias ('@common/models ' ), [
24-  'only '  => ['*Faker.php ' ],
25-  'except '  => ['BaseModelFaker.php ' ],
26-  ]);
27- 28-  $ sortedFakersModelsstatic ::sortModels ($ fakers'\\common \\models \\faker \\' );
29- 30-  foreach ($ sortedFakersModelsas  $ justModelClassName
31-  $ className'common \\models \\faker \\'  . StringHelper::basename ($ justModelClassName'.php ' ).'Faker ' ;
32-  $ this stdout ('Generating fake data for  '  . StringHelper::basename ($ justModelClassName'Faker.php ' ) . '... ' );
36+  $ fakerModels$ this getFakersModels ();
37+  foreach ($ fakerModelsas  $ modelClassName
38+  $ className'common \\models \\faker \\'  . StringHelper::basename ($ modelClassName'.php ' ).'Faker ' ;
39+  $ this stdout ('Generating fake data for  '  . StringHelper::basename ($ modelClassName'Faker.php ' ) . '... ' );
3340 $ fakernew  $ className
3441 for ($ i0 ; $ i10 ; $ i
3542 $ model$ fakergenerateModel ();
@@ -51,18 +58,13 @@ public function actionClear($requireConfirm = true): int
5158 return  ExitCode::OK ;
5259 }
5360
54-  $ fakersfindFiles (\Yii::getAlias ('@common/models ' ), [
55-  'only '  => ['*Faker.php ' ],
56-  'except '  => ['BaseModelFaker.php ' ],
57-  ]);
58- 59-  $ sortedFakersModelsstatic ::sortModels ($ fakers'\\common \\models \\faker \\' );
61+  $ sortedFakersModels$ this getFakersModels ();
6062 $ sortedFakersModels_DESCarray_reverse ($ sortedFakersModels
61-  foreach  ($ sortedFakersModels_DESCas  $ modelName 
63+  foreach  ($ sortedFakersModels_DESCas  $ modelClassName 
6264 /** @var Model $modelClass */ 
63-  $ modelClass'common \\models \\base \\' .$ modelName 
65+  $ modelClass'common \\models \\base \\' .$ modelClassName 
6466 Yii::$ appdb ->createCommand ()->delete ($ modelClasstableName ())->execute ();
65-  $ this stdout ("Data from  $ modelName  was deleted \n" );
67+  $ this stdout ("Data from  $ modelClassName  was deleted \n" );
6668 }
6769 return  ExitCode::OK ;
6870 }
@@ -146,4 +148,18 @@ public static function moveModel(&$sortedDependentModels, $dependentOn, $model)
146148
147149 $ sortedDependentModelsarray_merge ($ restLeft$ dependentOn$ restRight
148150 }
151+ 152+  /** 
153+  * @return int[]|string[] 
154+  */ 
155+  private  function  getFakersModels (): array 
156+  {
157+  $ fakersfindFiles (\Yii::getAlias ('@common/models ' ), [
158+  'only '  => ['*Faker.php ' ],
159+  'except '  => ['BaseModelFaker.php ' ],
160+  ]);
161+ 162+  $ sortedFakersModelsstatic ::sortModels ($ fakers'\\common \\models \\faker \\' );
163+  return  $ sortedFakersModels
164+  }
149165}
0 commit comments