<?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,
),
));
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
|
|