Blame | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace Doctrine\DBAL\Schema;use Doctrine\DBAL\Platforms\AbstractPlatform;use Doctrine\Deprecations\Deprecation;use function array_filter;use function array_values;use function count;/*** Table Diff.*/class TableDiff{/*** @deprecated Use {@see getOldTable()} instead.** @var string*/public $name;/*** @deprecated Rename tables via {@link AbstractSchemaManager::renameTable()} instead.** @var string|false*/public $newName = false;/*** All added columns** @internal Use {@see getAddedColumns()} instead.** @var Column[]*/public $addedColumns;/*** All modified columns** @internal Use {@see getModifiedColumns()} instead.** @var ColumnDiff[]*/public $changedColumns = [];/*** All dropped columns** @internal Use {@see getDroppedColumns()} instead.** @var Column[]*/public $removedColumns = [];/*** Columns that are only renamed from key to column instance name.** @internal Use {@see getRenamedColumns()} instead.** @var Column[]*/public $renamedColumns = [];/*** All added indexes.** @internal Use {@see getAddedIndexes()} instead.** @var Index[]*/public $addedIndexes = [];/*** All changed indexes.** @internal Use {@see getModifiedIndexes()} instead.** @var Index[]*/public $changedIndexes = [];/*** All removed indexes** @internal Use {@see getDroppedIndexes()} instead.** @var Index[]*/public $removedIndexes = [];/*** Indexes that are only renamed but are identical otherwise.** @internal Use {@see getRenamedIndexes()} instead.** @var Index[]*/public $renamedIndexes = [];/*** All added foreign key definitions** @internal Use {@see getAddedForeignKeys()} instead.** @var ForeignKeyConstraint[]*/public $addedForeignKeys = [];/*** All changed foreign keys** @internal Use {@see getModifiedForeignKeys()} instead.** @var ForeignKeyConstraint[]*/public $changedForeignKeys = [];/*** All removed foreign keys** @internal Use {@see getDroppedForeignKeys()} instead.** @var (ForeignKeyConstraint|string)[]*/public $removedForeignKeys = [];/*** @internal Use {@see getOldTable()} instead.** @var Table|null*/public $fromTable;/*** Constructs a TableDiff object.** @internal The diff can be only instantiated by a {@see Comparator}.** @param string $tableName* @param array<Column> $addedColumns* @param array<ColumnDiff> $modifiedColumns* @param array<Column> $droppedColumns* @param array<Index> $addedIndexes* @param array<Index> $changedIndexes* @param array<Index> $removedIndexes* @param list<ForeignKeyConstraint> $addedForeignKeys* @param list<ForeignKeyConstraint> $changedForeignKeys* @param list<ForeignKeyConstraint|string> $removedForeignKeys* @param array<string,Column> $renamedColumns* @param array<string,Index> $renamedIndexes*/public function __construct($tableName,$addedColumns = [],$modifiedColumns = [],$droppedColumns = [],$addedIndexes = [],$changedIndexes = [],$removedIndexes = [],?Table $fromTable = null,$addedForeignKeys = [],$changedForeignKeys = [],$removedForeignKeys = [],$renamedColumns = [],$renamedIndexes = []) {$this->name = $tableName;$this->addedColumns = $addedColumns;$this->changedColumns = $modifiedColumns;$this->renamedColumns = $renamedColumns;$this->removedColumns = $droppedColumns;$this->addedIndexes = $addedIndexes;$this->changedIndexes = $changedIndexes;$this->renamedIndexes = $renamedIndexes;$this->removedIndexes = $removedIndexes;$this->addedForeignKeys = $addedForeignKeys;$this->changedForeignKeys = $changedForeignKeys;$this->removedForeignKeys = $removedForeignKeys;if ($fromTable !== null) {Deprecation::trigger('doctrine/dbal','https://github.com/doctrine/dbal/pull/5678','Not passing the $fromColumn to %s is deprecated.',__METHOD__,);}$this->fromTable = $fromTable;}/*** @deprecated Use {@see getOldTable()} instead.** @param AbstractPlatform $platform The platform to use for retrieving this table diff's name.** @return Identifier*/public function getName(AbstractPlatform $platform){return new Identifier($this->fromTable instanceof Table ? $this->fromTable->getQuotedName($platform) : $this->name,);}/*** @deprecated Rename tables via {@link AbstractSchemaManager::renameTable()} instead.** @return Identifier|false*/public function getNewName(){Deprecation::triggerIfCalledFromOutside('doctrine/dbal','https://github.com/doctrine/dbal/pull/5663','%s is deprecated. Rename tables via AbstractSchemaManager::renameTable() instead.',__METHOD__,);if ($this->newName === false) {return false;}return new Identifier($this->newName);}public function getOldTable(): ?Table{return $this->fromTable;}/** @return list<Column> */public function getAddedColumns(): array{return array_values($this->addedColumns);}/** @return list<ColumnDiff> */public function getModifiedColumns(): array{return array_values($this->changedColumns);}/** @return list<Column> */public function getDroppedColumns(): array{return array_values($this->removedColumns);}/** @return array<string,Column> */public function getRenamedColumns(): array{return $this->renamedColumns;}/** @return list<Index> */public function getAddedIndexes(): array{return array_values($this->addedIndexes);}/*** @internal This method exists only for compatibility with the current implementation of schema managers* that modify the diff while processing it.*/public function unsetAddedIndex(Index $index): void{$this->addedIndexes = array_filter($this->addedIndexes,static function (Index $addedIndex) use ($index): bool {return $addedIndex !== $index;},);}/** @return array<Index> */public function getModifiedIndexes(): array{return array_values($this->changedIndexes);}/** @return list<Index> */public function getDroppedIndexes(): array{return array_values($this->removedIndexes);}/*** @internal This method exists only for compatibility with the current implementation of schema managers* that modify the diff while processing it.*/public function unsetDroppedIndex(Index $index): void{$this->removedIndexes = array_filter($this->removedIndexes,static function (Index $removedIndex) use ($index): bool {return $removedIndex !== $index;},);}/** @return array<string,Index> */public function getRenamedIndexes(): array{return $this->renamedIndexes;}/** @return list<ForeignKeyConstraint> */public function getAddedForeignKeys(): array{return $this->addedForeignKeys;}/** @return list<ForeignKeyConstraint> */public function getModifiedForeignKeys(): array{return $this->changedForeignKeys;}/** @return list<ForeignKeyConstraint|string> */public function getDroppedForeignKeys(): array{return $this->removedForeignKeys;}/*** @internal This method exists only for compatibility with the current implementation of the schema comparator.** @param ForeignKeyConstraint|string $foreignKey*/public function unsetDroppedForeignKey($foreignKey): void{$this->removedForeignKeys = array_filter($this->removedForeignKeys,static function ($removedForeignKey) use ($foreignKey): bool {return $removedForeignKey !== $foreignKey;},);}/*** Returns whether the diff is empty (contains no changes).*/public function isEmpty(): bool{return count($this->addedColumns) === 0&& count($this->changedColumns) === 0&& count($this->removedColumns) === 0&& count($this->renamedColumns) === 0&& count($this->addedIndexes) === 0&& count($this->changedIndexes) === 0&& count($this->removedIndexes) === 0&& count($this->renamedIndexes) === 0&& count($this->addedForeignKeys) === 0&& count($this->changedForeignKeys) === 0&& count($this->removedForeignKeys) === 0;}}