Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F4110037
UniqueConstraint.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
UniqueConstraint.php
View Options
<?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
array
$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
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Tue, Aug 18, 21:26 (4 d, 23 h ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
10/73/24e5d6861023cc0584de77859dca
Default Alt Text
UniqueConstraint.php (3 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment