PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / dbal / src / Schema / Schema.php
mailpoet / vendor-prefixed / doctrine / dbal / src / Schema Last commit date
Exception 2 years ago Visitor 9 months ago AbstractAsset.php 2 years ago AbstractSchemaManager.php 9 months ago Column.php 2 years ago ColumnDiff.php 2 years ago Comparator.php 2 years ago Constraint.php 2 years ago DB2SchemaManager.php 2 years ago DefaultSchemaManagerFactory.php 2 years ago ForeignKeyConstraint.php 9 months ago Identifier.php 2 years ago Index.php 2 years ago LegacySchemaManagerFactory.php 2 years ago MySQLSchemaManager.php 9 months ago OracleSchemaManager.php 2 years ago PostgreSQLSchemaManager.php 9 months ago SQLServerSchemaManager.php 9 months ago Schema.php 2 years ago SchemaConfig.php 2 years ago SchemaDiff.php 2 years ago SchemaException.php 2 years ago SchemaManagerFactory.php 2 years ago Sequence.php 2 years ago SqliteSchemaManager.php 8 months ago Table.php 2 years ago TableDiff.php 2 years ago UniqueConstraint.php 2 years ago View.php 2 years ago
Schema.php
223 lines
1 <?php
2 namespace MailPoetVendor\Doctrine\DBAL\Schema;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Doctrine\DBAL\Exception;
5 use MailPoetVendor\Doctrine\DBAL\Platforms\AbstractPlatform;
6 use MailPoetVendor\Doctrine\DBAL\Schema\Visitor\NamespaceVisitor;
7 use MailPoetVendor\Doctrine\DBAL\Schema\Visitor\Visitor;
8 use MailPoetVendor\Doctrine\DBAL\SQL\Builder\CreateSchemaObjectsSQLBuilder;
9 use MailPoetVendor\Doctrine\DBAL\SQL\Builder\DropSchemaObjectsSQLBuilder;
10 use MailPoetVendor\Doctrine\Deprecations\Deprecation;
11 use function array_keys;
12 use function strpos;
13 use function strtolower;
14 class Schema extends AbstractAsset
15 {
16 private array $namespaces = [];
17 protected $_tables = [];
18 protected $_sequences = [];
19 protected $_schemaConfig;
20 public function __construct(array $tables = [], array $sequences = [], ?SchemaConfig $schemaConfig = null, array $namespaces = [])
21 {
22 $schemaConfig ??= new SchemaConfig();
23 $this->_schemaConfig = $schemaConfig;
24 $this->_setName($schemaConfig->getName() ?? 'public');
25 foreach ($namespaces as $namespace) {
26 $this->createNamespace($namespace);
27 }
28 foreach ($tables as $table) {
29 $this->_addTable($table);
30 }
31 foreach ($sequences as $sequence) {
32 $this->_addSequence($sequence);
33 }
34 }
35 public function hasExplicitForeignKeyIndexes()
36 {
37 Deprecation::trigger('doctrine/dbal', 'https://github.com/doctrine/dbal/pull/4822', 'Schema::hasExplicitForeignKeyIndexes() is deprecated.');
38 return $this->_schemaConfig->hasExplicitForeignKeyIndexes();
39 }
40 protected function _addTable(Table $table)
41 {
42 $namespaceName = $table->getNamespaceName();
43 $tableName = $this->normalizeName($table);
44 if (isset($this->_tables[$tableName])) {
45 throw SchemaException::tableAlreadyExists($tableName);
46 }
47 if ($namespaceName !== null && !$table->isInDefaultNamespace($this->getName()) && !$this->hasNamespace($namespaceName)) {
48 $this->createNamespace($namespaceName);
49 }
50 $this->_tables[$tableName] = $table;
51 $table->setSchemaConfig($this->_schemaConfig);
52 }
53 protected function _addSequence(Sequence $sequence)
54 {
55 $namespaceName = $sequence->getNamespaceName();
56 $seqName = $this->normalizeName($sequence);
57 if (isset($this->_sequences[$seqName])) {
58 throw SchemaException::sequenceAlreadyExists($seqName);
59 }
60 if ($namespaceName !== null && !$sequence->isInDefaultNamespace($this->getName()) && !$this->hasNamespace($namespaceName)) {
61 $this->createNamespace($namespaceName);
62 }
63 $this->_sequences[$seqName] = $sequence;
64 }
65 public function getNamespaces()
66 {
67 return $this->namespaces;
68 }
69 public function getTables()
70 {
71 return $this->_tables;
72 }
73 public function getTable($name)
74 {
75 $name = $this->getFullQualifiedAssetName($name);
76 if (!isset($this->_tables[$name])) {
77 throw SchemaException::tableDoesNotExist($name);
78 }
79 return $this->_tables[$name];
80 }
81 private function getFullQualifiedAssetName($name) : string
82 {
83 $name = $this->getUnquotedAssetName($name);
84 if (strpos($name, '.') === \false) {
85 $name = $this->getName() . '.' . $name;
86 }
87 return strtolower($name);
88 }
89 private function normalizeName(AbstractAsset $asset) : string
90 {
91 return $asset->getFullQualifiedName($this->getName());
92 }
93 private function getUnquotedAssetName($assetName) : string
94 {
95 if ($this->isIdentifierQuoted($assetName)) {
96 return $this->trimQuotes($assetName);
97 }
98 return $assetName;
99 }
100 public function hasNamespace($name)
101 {
102 $name = strtolower($this->getUnquotedAssetName($name));
103 return isset($this->namespaces[$name]);
104 }
105 public function hasTable($name)
106 {
107 $name = $this->getFullQualifiedAssetName($name);
108 return isset($this->_tables[$name]);
109 }
110 public function getTableNames()
111 {
112 Deprecation::trigger('doctrine/dbal', 'https://github.com/doctrine/dbal/pull/4800', 'Schema::getTableNames() is deprecated.' . ' Use Schema::getTables() and Table::getName() instead.', __METHOD__);
113 return array_keys($this->_tables);
114 }
115 public function hasSequence($name)
116 {
117 $name = $this->getFullQualifiedAssetName($name);
118 return isset($this->_sequences[$name]);
119 }
120 public function getSequence($name)
121 {
122 $name = $this->getFullQualifiedAssetName($name);
123 if (!$this->hasSequence($name)) {
124 throw SchemaException::sequenceDoesNotExist($name);
125 }
126 return $this->_sequences[$name];
127 }
128 public function getSequences()
129 {
130 return $this->_sequences;
131 }
132 public function createNamespace($name)
133 {
134 $unquotedName = strtolower($this->getUnquotedAssetName($name));
135 if (isset($this->namespaces[$unquotedName])) {
136 throw SchemaException::namespaceAlreadyExists($unquotedName);
137 }
138 $this->namespaces[$unquotedName] = $name;
139 return $this;
140 }
141 public function createTable($name)
142 {
143 $table = new Table($name);
144 $this->_addTable($table);
145 foreach ($this->_schemaConfig->getDefaultTableOptions() as $option => $value) {
146 $table->addOption($option, $value);
147 }
148 return $table;
149 }
150 public function renameTable($oldName, $newName)
151 {
152 $table = $this->getTable($oldName);
153 $table->_setName($newName);
154 $this->dropTable($oldName);
155 $this->_addTable($table);
156 return $this;
157 }
158 public function dropTable($name)
159 {
160 $name = $this->getFullQualifiedAssetName($name);
161 $this->getTable($name);
162 unset($this->_tables[$name]);
163 return $this;
164 }
165 public function createSequence($name, $allocationSize = 1, $initialValue = 1)
166 {
167 $seq = new Sequence($name, $allocationSize, $initialValue);
168 $this->_addSequence($seq);
169 return $seq;
170 }
171 public function dropSequence($name)
172 {
173 $name = $this->getFullQualifiedAssetName($name);
174 unset($this->_sequences[$name]);
175 return $this;
176 }
177 public function toSql(AbstractPlatform $platform)
178 {
179 $builder = new CreateSchemaObjectsSQLBuilder($platform);
180 return $builder->buildSQL($this);
181 }
182 public function toDropSql(AbstractPlatform $platform)
183 {
184 $builder = new DropSchemaObjectsSQLBuilder($platform);
185 return $builder->buildSQL($this);
186 }
187 public function getMigrateToSql(Schema $toSchema, AbstractPlatform $platform)
188 {
189 $schemaDiff = (new Comparator())->compareSchemas($this, $toSchema);
190 return $schemaDiff->toSql($platform);
191 }
192 public function getMigrateFromSql(Schema $fromSchema, AbstractPlatform $platform)
193 {
194 $schemaDiff = (new Comparator())->compareSchemas($fromSchema, $this);
195 return $schemaDiff->toSql($platform);
196 }
197 public function visit(Visitor $visitor)
198 {
199 Deprecation::triggerIfCalledFromOutside('doctrine/dbal', 'https://github.com/doctrine/dbal/pull/5435', 'Schema::visit() is deprecated.');
200 $visitor->acceptSchema($this);
201 if ($visitor instanceof NamespaceVisitor) {
202 foreach ($this->namespaces as $namespace) {
203 $visitor->acceptNamespace($namespace);
204 }
205 }
206 foreach ($this->_tables as $table) {
207 $table->visit($visitor);
208 }
209 foreach ($this->_sequences as $sequence) {
210 $sequence->visit($visitor);
211 }
212 }
213 public function __clone()
214 {
215 foreach ($this->_tables as $k => $table) {
216 $this->_tables[$k] = clone $table;
217 }
218 foreach ($this->_sequences as $k => $sequence) {
219 $this->_sequences[$k] = clone $sequence;
220 }
221 }
222 }
223