Esempio n. 1
0
 /**
  * @param array  $config
  * @param string $configPath
  *
  * @return FixtureGeneratorRule
  *
  * @throws \Exception
  */
 private function createRuleFromConfig(array $config, string $configPath) : FixtureGeneratorRule
 {
     if (empty($config)) {
         throw new \Exception('Config array is empty');
     }
     $rule = new FixtureGeneratorRule();
     if (!empty($key)) {
         $rule->setKey($key);
     }
     if (isset($config['prefix'])) {
         $rule->setPrefix($config['prefix']);
     }
     if (isset($config['strategy'])) {
         $rule->setStrategy($config['strategy']);
     }
     if (isset($config['count_repeat'])) {
         $rule->setCountRepeat($config['count_repeat']);
     }
     if (isset($config['referenceArray'])) {
         $rule->setReferenceArray(json_decode(file_get_contents($configPath . '/' . $config['referenceArray'] . '.json'), true));
     }
     if (isset($config['rules'])) {
         foreach ($config['rules'] as $key => $item) {
             $rule->addRule($this->createRuleFromConfig($item, $configPath));
         }
     }
     /* @var FixtureGeneratorRule $rule */
     return $rule;
 }