/** * Генерация данных в связанных таблицах */ 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); } } }
/** * Генерация данных */ 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; }