mailpoet
/
vendor-prefixed
/
doctrine
/
dbal
/
src
/
SQL
/
Builder
/
DropSchemaObjectsSQLBuilder.php
CreateSchemaObjectsSQLBuilder.php
2 years ago
DefaultSelectSQLBuilder.php
2 years ago
DropSchemaObjectsSQLBuilder.php
2 years ago
SelectSQLBuilder.php
2 years ago
index.php
2 years ago
DropSchemaObjectsSQLBuilder.php
34 lines
| 1 | <?php |
| 2 | namespace MailPoetVendor\Doctrine\DBAL\SQL\Builder; |
| 3 | if (!defined('ABSPATH')) exit; |
| 4 | use MailPoetVendor\Doctrine\DBAL\Exception; |
| 5 | use MailPoetVendor\Doctrine\DBAL\Platforms\AbstractPlatform; |
| 6 | use MailPoetVendor\Doctrine\DBAL\Schema\Schema; |
| 7 | use MailPoetVendor\Doctrine\DBAL\Schema\Sequence; |
| 8 | use MailPoetVendor\Doctrine\DBAL\Schema\Table; |
| 9 | use function array_merge; |
| 10 | final class DropSchemaObjectsSQLBuilder |
| 11 | { |
| 12 | private AbstractPlatform $platform; |
| 13 | public function __construct(AbstractPlatform $platform) |
| 14 | { |
| 15 | $this->platform = $platform; |
| 16 | } |
| 17 | public function buildSQL(Schema $schema) : array |
| 18 | { |
| 19 | return array_merge($this->buildSequenceStatements($schema->getSequences()), $this->buildTableStatements($schema->getTables())); |
| 20 | } |
| 21 | private function buildTableStatements(array $tables) : array |
| 22 | { |
| 23 | return $this->platform->getDropTablesSQL($tables); |
| 24 | } |
| 25 | private function buildSequenceStatements(array $sequences) : array |
| 26 | { |
| 27 | $statements = []; |
| 28 | foreach ($sequences as $sequence) { |
| 29 | $statements[] = $this->platform->getDropSequenceSQL($sequence); |
| 30 | } |
| 31 | return $statements; |
| 32 | } |
| 33 | } |
| 34 |