ok
Direktori : /home2/selectio/www/3-idiots/vendor/doctrine/dbal/src/SQL/Builder/ |
Current File : /home2/selectio/www/3-idiots/vendor/doctrine/dbal/src/SQL/Builder/CreateSchemaObjectsSQLBuilder.php |
<?php namespace Doctrine\DBAL\SQL\Builder; use Doctrine\DBAL\Exception; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Sequence; use Doctrine\DBAL\Schema\Table; use function array_merge; final class CreateSchemaObjectsSQLBuilder { private AbstractPlatform $platform; public function __construct(AbstractPlatform $platform) { $this->platform = $platform; } /** * @return list<string> * * @throws Exception */ public function buildSQL(Schema $schema): array { return array_merge( $this->buildNamespaceStatements($schema->getNamespaces()), $this->buildSequenceStatements($schema->getSequences()), $this->buildTableStatements($schema->getTables()), ); } /** * @param list<string> $namespaces * * @return list<string> * * @throws Exception */ private function buildNamespaceStatements(array $namespaces): array { $statements = []; if ($this->platform->supportsSchemas()) { foreach ($namespaces as $namespace) { $statements[] = $this->platform->getCreateSchemaSQL($namespace); } } return $statements; } /** * @param list<Table> $tables * * @return list<string> * * @throws Exception */ private function buildTableStatements(array $tables): array { return $this->platform->getCreateTablesSQL($tables); } /** * @param list<Sequence> $sequences * * @return list<string> * * @throws Exception */ private function buildSequenceStatements(array $sequences): array { $statements = []; foreach ($sequences as $sequence) { $statements[] = $this->platform->getCreateSequenceSQL($sequence); } return $statements; } }