/** * Получение информации о полях в таблице * * @return array */ private function getTableInfo() { // Спрашиваем пользователя echo PHP_EOL . 'Информацию по какой таблице ты хочешь посмотреть (введи название таблицы): '; $answer = trim(fgets(STDIN)); // Обнуляем счетчик сгенерированных записей $this->newRecordsGenerated = 0; // Выставляем в анализаторе эту таблицу $this->tableAnalyzer->setTable($answer); // Получаем основную информацию return ['name' => $answer, 'columns' => $this->tableAnalyzer->getColumns(), 'relations' => $this->tableAnalyzer->getRelations(), 'rows' => $this->tableAnalyzer->getRowsCount()]; }
/** * Генерация данных в связанных таблицах */ 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); } } }