Source of file ForeignKey.php
Size: 3,928 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Db/Sql/Ddl/Constraint/ForeignKey.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Db\Sql\Ddl\Constraint; class ForeignKey extends AbstractConstraint { /** * @var string */ protected $name; /** * @var string */ protected $onDeleteRule = 'NO ACTION'; /** * @var string */ protected $onUpdateRule = 'NO ACTION'; /** * @var string */ protected $referenceColumn; /** * @var string */ protected $referenceTable; /** * @var string */ protected $specification = 'CONSTRAINT %1$s FOREIGN KEY (%2$s) REFERENCES %3$s (%4$s) ON DELETE %5$s ON UPDATE %6$s'; /** * @param array|null|string $name * @param string $column * @param string $referenceTable * @param string $referenceColumn * @param null|string $onDeleteRule * @param null|string $onUpdateRule */ public function __construct($name, $column, $referenceTable, $referenceColumn, $onDeleteRule = null, $onUpdateRule = null) { $this->setName($name); $this->setColumns($column); $this->setReferenceTable($referenceTable); $this->setReferenceColumn($referenceColumn); (!$onDeleteRule) ?: $this->setOnDeleteRule($onDeleteRule); (!$onUpdateRule) ?: $this->setOnUpdateRule($onUpdateRule); } /** * @param string $name * @return self */ public function setName($name) { $this->name = $name; return $this; } /** * @return string */ public function getName() { return $this->name; } /** * @param string $referenceTable * @return self */ public function setReferenceTable($referenceTable) { $this->referenceTable = $referenceTable; return $this; } /** * @return string */ public function getReferenceTable() { return $this->referenceTable; } /** * @param string $referenceColumn * @return self */ public function setReferenceColumn($referenceColumn) { $this->referenceColumn = $referenceColumn; return $this; } /** * @return string */ public function getReferenceColumn() { return $this->referenceColumn; } /** * @param string $onDeleteRule * @return self */ public function setOnDeleteRule($onDeleteRule) { $this->onDeleteRule = $onDeleteRule; return $this; } /** * @return string */ public function getOnDeleteRule() { return $this->onDeleteRule; } /** * @param string $onUpdateRule * @return self */ public function setOnUpdateRule($onUpdateRule) { $this->onUpdateRule = $onUpdateRule; return $this; } /** * @return string */ public function getOnUpdateRule() { return $this->onUpdateRule; } /** * @return array */ public function getExpressionData() { return array(array( $this->specification, array( $this->name, $this->columns[0], $this->referenceTable, $this->referenceColumn, $this->onDeleteRule, $this->onUpdateRule, ), array( self::TYPE_IDENTIFIER, self::TYPE_IDENTIFIER, self::TYPE_IDENTIFIER, self::TYPE_IDENTIFIER, self::TYPE_LITERAL, self::TYPE_LITERAL, ), )); } } |