. */ namespace OrangeHRM\Installer\Util\V1\Dto; use Doctrine\DBAL\Schema\AbstractSchemaManager; class Table extends \Doctrine\DBAL\Schema\Table { private AbstractSchemaManager $schemaManager; /** * @param AbstractSchemaManager $schemaManager */ public function setSchemaManager(AbstractSchemaManager $schemaManager): void { $this->schemaManager = $schemaManager; } /** * @param string $name * @param string $typeName * @param array $options ['Type' => \Doctrine\DBAL\Types\Type, 'Length' => int|null, 'Precision' => int, 'Scale' => int, 'Unsigned' => bool, 'Fixed' => bool, 'Notnull' => bool, 'Default' => mixed, 'Autoincrement' => bool, 'Comment' => string|null, 'CustomSchemaOptions' => array] * @return self */ public function addColumn($name, $typeName, array $options = []): self { parent::addColumn($name, $typeName, $options); return $this; } /** * Execute SQL to create the table */ public function create(): void { $this->schemaManager->createTable($this); } }