/**
  * Генерация данных в связанных таблицах
  */
 private function generateRelatedTables()
 {
     // Получаем информацию о Foreign Keys
     $relations = $this->analyzer->getRelations();
     // Если их нет - выходим
     if (empty($relations)) {
         return;
     }
     // Создаем временный анализатор таблиц,
     // будем его натравливать на связанные таблицы
     $tmpAnalyzer = clone $this->analyzer;
     // Генерируем данные в каждой связанной таблице
     foreach ($relations as $relationInfo) {
         // Указываем анализатору необходимую таблицу
         $tmpAnalyzer->setTable($relationInfo['to_table_name']);
         // Если в ней слишом мало данных - запускаем генератор данных для нее
         $rowsCount = $tmpAnalyzer->getRowsCount();
         if ($rowsCount < self::MIN_RELATED_TABLES_ROWS_COUNT) {
             $tableDataGenerator = new TableDataGenerator($tmpAnalyzer);
             $tableDataGenerator->generate(self::MIN_RELATED_TABLES_ROWS_COUNT - $rowsCount);
         }
     }
 }
Пример #2
0
 /**
  * Генерация данных
  */
 private function generateData()
 {
     // Спрашиваем пользователя
     echo PHP_EOL . 'Сколько записей ты хочешь сгенерировать (1..20): ';
     $answer = (int) fgets(STDIN);
     // Если ввел невалидные данные - ругаемся и выходим
     if (!in_array($answer, range(1, 20))) {
         echo 'Ты выбрал недопустимый вариант... Прощай :(' . PHP_EOL;
         exit(0);
     }
     // Создаем генератор данных для таблицы и генерируем им данные
     $generator = new TableDataGenerator($this->tableAnalyzer);
     $generator->generate($answer);
     // Запоминаем сколько данных мы сгенерили
     $this->newRecordsGenerated += $answer;
 }