36 lines
761 B
PHP
36 lines
761 B
PHP
<?php
|
|
|
|
namespace Ulmus\Query;
|
|
|
|
use Ulmus\Annotation,
|
|
Ulmus\Common\EntityField;
|
|
|
|
class Create extends Fragment {
|
|
|
|
const SQL_TOKEN = "CREATE TABLE";
|
|
|
|
public string $table;
|
|
|
|
public string $engine;
|
|
|
|
public int $order = -80;
|
|
|
|
public bool $skipExisting = true;
|
|
|
|
public array $fieldList;
|
|
|
|
public function render() : string
|
|
{
|
|
return $this->renderSegments([
|
|
static::SQL_TOKEN, $this->renderTables($this->table), $this->renderFields(),
|
|
]);
|
|
}
|
|
|
|
public function renderFields() : string
|
|
{
|
|
return "(" . PHP_EOL . implode("," . PHP_EOL, array_map(function($field) {
|
|
return " " . EntityField::generateCreateColumn($field);
|
|
}, $this->fieldList)) . PHP_EOL . ")";
|
|
}
|
|
}
|