Файл: concrete5.7.5.6/concrete/src/Database/Schema/Parser/ArrayParser.php
Строк: 45
<?php
namespace ConcreteCoreDatabaseSchemaParser;
class ArrayParser
{
public function addColumns(DoctrineDBALSchemaTable $table, $columns)
{
foreach ($columns as $column) {
$table->addColumn($column['name'], $column['type'], $column['options']);
}
return $table;
}
public function parse($definition, ConcreteCoreDatabaseConnectionConnection $db)
{
$schema = new DoctrineDBALSchemaSchema();
foreach ($definition as $tableName => $details) {
if ($db->tableExists($tableName)) {
continue;
}
$table = $schema->createTable($tableName);
if (isset($details['columns'])) {
$table = $this->addColumns($table, $details['columns']);
}
else {
throw new Exception(t('Invalid column definition: %s in table %s', var_export($details, true), $tableName));
}
$table->setPrimaryKey($details['primary']);
}
return $schema;
}
}