/** * @param \DatabaseExporterImporter\Entity\Table $table * @return \DatabaseExporterImporter\Entity\Column|null */ public function getAutoIncrementColumn(Table $table) { foreach ($table->getColumns() as $column) { if (true === $column->isAutoIncrement()) { return $column; } } }
public function test() { $tableName = mt_rand(); $subject = new Table($tableName); static::assertSame($tableName, $subject->getName()); static::assertCount(0, $subject->getColumns()); $columnName = mt_rand(); $column = new Column($columnName); $subject->addColumn($column); static::assertCount(1, $subject->getColumns()); $firstColumn = reset($subject->getColumns()); static::assertSame($columnName, $firstColumn->getName()); $dataRow = new DataRow(); static::assertCount(0, $subject->getDataRows()); $subject->addDataRow($dataRow); static::assertCount(1, $subject->getDataRows()); }
/** * @return array */ public function getForeignKeyValues() { $values = []; foreach ($this->table->getColumns() as $column) { if (null !== $column->getForeignKey()) { $values[$column->getName()] = []; foreach ($this->tables as $existingTable) { if ($column->getForeignKey()->getTableName() === $existingTable->getName()) { foreach ($existingTable->getDataRows() as $dataRow) { foreach ($dataRow->getDataColumns() as $dataColumn) { if ($dataColumn->getName() === $column->getForeignKey()->getColumnName()) { $values[$column->getName()][] = $dataColumn->getValue(); } } } } } } } return $values; }
/** * @param \DatabaseExporterImporter\Entity\Table $table * @return array */ public function getTableColumns(Table $table) { $columns = []; foreach ($table->getColumns() as $column) { $columnExport = ['name' => $column->getName()]; if (true === $column->isAutoIncrement()) { $columnExport['auto_increment'] = true; } $foreignKey = $column->getForeignKey(); if (null !== $foreignKey) { $columnExport['foreign_key'] = ['table_name' => $foreignKey->getTableName(), 'column_name' => $foreignKey->getColumnName()]; } $columns[] = $columnExport; } return $columns; }