PATH:
home
/
lab2454c
/
healthvalidate.com
/
vendor
/
doctrine
/
dbal
/
src
/
Schema
<?php namespace Doctrine\DBAL\Schema; use Doctrine\DBAL\Platforms\AbstractPlatform; use function array_keys; use function array_map; use function strtolower; /** * Class for a unique constraint. */ class UniqueConstraint extends AbstractAsset implements Constraint { /** * Asset identifier instances of the column names the unique constraint is associated with. * array($columnName => Identifier) * * @var Identifier[] */ protected $columns = []; /** * Platform specific flags. * array($flagName => true) * * @var true[] */ protected $flags = []; /** * Platform specific options. * * @var mixed[] */ private $options = []; /** * @param string[] $columns * @param string[] $flags * @param mixed[] $options */ public function __construct(string $name, array $columns, array $flags = [], array $options = []) { $this->_setName($name); $this->options = $options; foreach ($columns as $column) { $this->addColumn($column); } foreach ($flags as $flag) { $this->addFlag($flag); } } /** * {@inheritdoc} */ public function getColumns() { return array_keys($this->columns); } /** * {@inheritdoc} */ public function getQuotedColumns(AbstractPlatform $platform) { $columns = []; foreach ($this->columns as $column) { $columns[] = $column->getQuotedName($platform); } return $columns; } /** * @return string[] */ public function getUnquotedColumns(): array { return array_map([$this, 'trimQuotes'], $this->getColumns()); } /** * Returns platform specific flags for unique constraint. * * @return string[] */ public function getFlags(): array { return array_keys($this->flags); } /** * Adds flag for a unique constraint that translates to platform specific handling. * * @return $this * * @example $uniqueConstraint->addFlag('CLUSTERED') */ public function addFlag(string $flag): UniqueConstraint { $this->flags[strtolower($flag)] = true; return $this; } /** * Does this unique constraint have a specific flag? */ public function hasFlag(string $flag): bool { return isset($this->flags[strtolower($flag)]); } /** * Removes a flag. */ public function removeFlag(string $flag): void { unset($this->flags[strtolower($flag)]); } /** * Does this unique constraint have a specific option? */ public function hasOption(string $name): bool { return isset($this->options[strtolower($name)]); } /** * @return mixed */ public function getOption(string $name) { return $this->options[strtolower($name)]; } /** * @return mixed[] */ public function getOptions(): array { return $this->options; } /** * Adds a new column to the unique constraint. */ protected function addColumn(string $column): void { $this->columns[$column] = new Identifier($column); } }
[-] SchemaDiff.php
[edit]
[-] OracleSchemaManager.php
[edit]
[-] SchemaException.php
[edit]
[-] Schema.php
[edit]
[+]
..
[-] View.php
[edit]
[-] Identifier.php
[edit]
[-] DB2SchemaManager.php
[edit]
[-] ForeignKeyConstraint.php
[edit]
[+]
Exception
[-] Column.php
[edit]
[-] AbstractAsset.php
[edit]
[-] SqliteSchemaManager.php
[edit]
[-] UniqueConstraint.php
[edit]
[-] Table.php
[edit]
[-] TableDiff.php
[edit]
[+]
Visitor
[-] Sequence.php
[edit]
[-] Constraint.php
[edit]
[-] Index.php
[edit]
[-] MySQLSchemaManager.php
[edit]
[-] Comparator.php
[edit]
[-] SchemaConfig.php
[edit]
[-] AbstractSchemaManager.php
[edit]
[-] PostgreSQLSchemaManager.php
[edit]
[-] ColumnDiff.php
[edit]
[-] SQLServerSchemaManager.php
[edit]