summaryrefslogtreecommitdiff
path: root/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php')
-rw-r--r--vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php b/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php
new file mode 100644
index 0000000..c038489
--- /dev/null
+++ b/vendor/doctrine/dbal/src/SQL/Builder/DropSchemaObjectsSQLBuilder.php
@@ -0,0 +1,54 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Doctrine\DBAL\SQL\Builder;
6
7use Doctrine\DBAL\Platforms\AbstractPlatform;
8use Doctrine\DBAL\Schema\Schema;
9use Doctrine\DBAL\Schema\Sequence;
10use Doctrine\DBAL\Schema\Table;
11
12use function array_merge;
13
14final class DropSchemaObjectsSQLBuilder
15{
16 public function __construct(private readonly AbstractPlatform $platform)
17 {
18 }
19
20 /** @return list<string> */
21 public function buildSQL(Schema $schema): array
22 {
23 return array_merge(
24 $this->buildSequenceStatements($schema->getSequences()),
25 $this->buildTableStatements($schema->getTables()),
26 );
27 }
28
29 /**
30 * @param list<Table> $tables
31 *
32 * @return list<string>
33 */
34 private function buildTableStatements(array $tables): array
35 {
36 return $this->platform->getDropTablesSQL($tables);
37 }
38
39 /**
40 * @param list<Sequence> $sequences
41 *
42 * @return list<string>
43 */
44 private function buildSequenceStatements(array $sequences): array
45 {
46 $statements = [];
47
48 foreach ($sequences as $sequence) {
49 $statements[] = $this->platform->getDropSequenceSQL($sequence->getQuotedName($this->platform));
50 }
51
52 return $statements;
53 }
54}