Class yii\db\mysql\ColumnSchemaBuilder
Inheritance | yii\db\mysql\ColumnSchemaBuilder » yii\db\ColumnSchemaBuilder » yii\base\BaseObject |
---|---|
Implements | yii\base\Configurable |
Available since version | 2.0.8 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/db/mysql/ColumnSchemaBuilder.php |
ColumnSchemaBuilder is the schema builder for MySQL databases.
Public Properties
Property | Type | Description | Defined By |
---|---|---|---|
$categoryMap | array | Mapping of abstract column types (keys) to type categories (values). | yii\db\ColumnSchemaBuilder |
$comment | string | Comment value of the column. | yii\db\ColumnSchemaBuilder |
$db | yii\db\Connection | The current database connection. | yii\db\ColumnSchemaBuilder |
$typeCategoryMap | array | Mapping of abstract column types (keys) to type categories (values). | yii\db\ColumnSchemaBuilder |
Protected Properties
Property | Type | Description | Defined By |
---|---|---|---|
$after | string | The column after which this column will be added. | yii\db\ColumnSchemaBuilder |
$append | mixed | SQL string to be appended to column schema definition. | yii\db\ColumnSchemaBuilder |
$check | string | The CHECK constraint for the column. |
yii\db\ColumnSchemaBuilder |
$default | mixed | Default value of the column. | yii\db\ColumnSchemaBuilder |
$isFirst | boolean | Whether this column is to be inserted at the beginning of the table. | yii\db\ColumnSchemaBuilder |
$isNotNull | boolean|null | Whether the column is or not nullable. | yii\db\ColumnSchemaBuilder |
$isUnique | boolean | Whether the column values should be unique. | yii\db\ColumnSchemaBuilder |
$isUnsigned | boolean | Whether the column values should be unsigned. | yii\db\ColumnSchemaBuilder |
$length | integer|string|array | Column size or precision definition. | yii\db\ColumnSchemaBuilder |
$type | string | The column type definition such as INTEGER, VARCHAR, DATETIME, etc. | yii\db\ColumnSchemaBuilder |
Public Methods
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\BaseObject |
__construct() | Create a column schema builder instance giving the type and value precision. | yii\db\ColumnSchemaBuilder |
__get() | Returns the value of an object property. | yii\base\BaseObject |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\BaseObject |
__set() | Sets value of an object property. | yii\base\BaseObject |
__toString() | Builds the full string for the column's schema. | yii\db\mysql\ColumnSchemaBuilder |
__unset() | Sets an object property to null. | yii\base\BaseObject |
after() | Adds an AFTER constraint to the column. |
yii\db\ColumnSchemaBuilder |
append() | Specify additional SQL to be appended to column definition. | yii\db\ColumnSchemaBuilder |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\BaseObject |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\BaseObject |
check() | Sets a CHECK constraint for the column. |
yii\db\ColumnSchemaBuilder |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
comment() | Specifies the comment for column. | yii\db\ColumnSchemaBuilder |
defaultExpression() | Specify the default SQL expression for the column. | yii\db\ColumnSchemaBuilder |
defaultValue() | Specify the default value for the column. | yii\db\ColumnSchemaBuilder |
first() | Adds an FIRST constraint to the column. |
yii\db\ColumnSchemaBuilder |
getCategoryMap() | yii\db\ColumnSchemaBuilder | |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\BaseObject |
hasProperty() | Returns a value indicating whether a property is defined. | yii\base\BaseObject |
init() | Initializes the object. | yii\base\BaseObject |
notNull() | Adds a NOT NULL constraint to the column. |
yii\db\ColumnSchemaBuilder |
null() | Adds a NULL constraint to the column. |
yii\db\ColumnSchemaBuilder |
setCategoryMap() | yii\db\ColumnSchemaBuilder | |
unique() | Adds a UNIQUE constraint to the column. |
yii\db\ColumnSchemaBuilder |
unsigned() | Marks column as unsigned. | yii\db\ColumnSchemaBuilder |
Protected Methods
Method | Description | Defined By |
---|---|---|
buildAfterString() | Builds the after constraint for the column. Defaults to unsupported. | yii\db\mysql\ColumnSchemaBuilder |
buildAppendString() | Builds the custom string that's appended to column definition. | yii\db\ColumnSchemaBuilder |
buildCheckString() | Builds the check constraint for the column. | yii\db\ColumnSchemaBuilder |
buildCommentString() | Builds the comment specification for the column. | yii\db\mysql\ColumnSchemaBuilder |
buildCompleteString() | Returns the complete column definition from input format. | yii\db\ColumnSchemaBuilder |
buildDefaultString() | Builds the default value specification for the column. | yii\db\ColumnSchemaBuilder |
buildDefaultValue() | Return the default value for the column. | yii\db\ColumnSchemaBuilder |
buildFirstString() | Builds the first constraint for the column. Defaults to unsupported. | yii\db\mysql\ColumnSchemaBuilder |
buildLengthString() | Builds the length/precision part of the column. | yii\db\ColumnSchemaBuilder |
buildNotNullString() | Builds the not null constraint for the column. | yii\db\ColumnSchemaBuilder |
buildUniqueString() | Builds the unique constraint for the column. | yii\db\ColumnSchemaBuilder |
buildUnsignedString() | Builds the unsigned string for column. Defaults to unsupported. | yii\db\mysql\ColumnSchemaBuilder |
getTypeCategory() | Returns the category of the column type. | yii\db\ColumnSchemaBuilder |
Constants
Constant | Value | Description | Defined By |
---|---|---|---|
CATEGORY_NUMERIC | 'numeric' | yii\db\ColumnSchemaBuilder | |
CATEGORY_OTHER | 'other' | yii\db\ColumnSchemaBuilder | |
CATEGORY_PK | 'pk' | yii\db\ColumnSchemaBuilder | |
CATEGORY_STRING | 'string' | yii\db\ColumnSchemaBuilder | |
CATEGORY_TIME | 'time' | yii\db\ColumnSchemaBuilder |
Method Details
Defined in: yii\base\BaseObject::__call()
Calls the named method which is not a class method.
Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.
public mixed __call ( $name, $params ) | ||
$name | string |
The method name |
$params | array |
Method parameters |
return | mixed |
The method return value |
---|---|---|
throws | yii\base\UnknownMethodException |
when calling unknown method |
public function __call($name, $params)
{
throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}
Defined in: yii\db\ColumnSchemaBuilder::__construct()
Create a column schema builder instance giving the type and value precision.
public void __construct ( $type, $length = null, $db = null, $config = [] ) | ||
$type | string |
Type of the column. See $type. |
$length | integer|string|array|null |
Length or precision of the column. See $length. |
$db | yii\db\Connection|null |
The current database connection. See $db. |
$config | array |
Name-value pairs that will be used to initialize the object properties |
public function __construct($type, $length = null, $db = null, $config = [])
{
$this->type = $type;
$this->length = $length;
$this->db = $db;
parent::__construct($config);
}
Defined in: yii\base\BaseObject::__get()
Returns the value of an object property.
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing $value = $object->property;
.
See also __set().
public mixed __get ( $name ) | ||
$name | string |
The property name |
return | mixed |
The property value |
---|---|---|
throws | yii\base\UnknownPropertyException |
if the property is not defined |
throws | yii\base\InvalidCallException |
if the property is write-only |
public function __get($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter();
} elseif (method_exists($this, 'set' . $name)) {
throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
}
throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}
Defined in: yii\base\BaseObject::__isset()
Checks if a property is set, i.e. defined and not null.
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing isset($object->property)
.
Note that if the property is not defined, false will be returned.
public boolean __isset ( $name ) | ||
$name | string |
The property name or the event name |
return | boolean |
Whether the named property is set (not null). |
---|
public function __isset($name)
{
$getter = 'get' . $name;
if (method_exists($this, $getter)) {
return $this->$getter() !== null;
}
return false;
}
Defined in: yii\base\BaseObject::__set()
Sets value of an object property.
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing $object->property = $value;
.
See also __get().
public void __set ( $name, $value ) | ||
$name | string |
The property name or the event name |
$value | mixed |
The property value |
throws | yii\base\UnknownPropertyException |
if the property is not defined |
---|---|---|
throws | yii\base\InvalidCallException |
if the property is read-only |
public function __set($name, $value)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
$this->$setter($value);
} elseif (method_exists($this, 'get' . $name)) {
throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
} else {
throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}
}
Builds the full string for the column's schema.
public string __toString ( ) |
public function __toString()
{
switch ($this->getTypeCategory()) {
case self::CATEGORY_PK:
$format = '{type}{length}{comment}{check}{append}{pos}';
break;
case self::CATEGORY_NUMERIC:
$format = '{type}{length}{unsigned}{notnull}{default}{unique}{comment}{append}{pos}{check}';
break;
default:
$format = '{type}{length}{notnull}{default}{unique}{comment}{append}{pos}{check}';
}
return $this->buildCompleteString($format);
}
Defined in: yii\base\BaseObject::__unset()
Sets an object property to null.
Do not call this method directly as it is a PHP magic method that
will be implicitly called when executing unset($object->property)
.
Note that if the property is not defined, this method will do nothing. If the property is read-only, it will throw an exception.
public void __unset ( $name ) | ||
$name | string |
The property name |
throws | yii\base\InvalidCallException |
if the property is read only. |
---|
public function __unset($name)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
$this->$setter(null);
} elseif (method_exists($this, 'get' . $name)) {
throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
}
}
Defined in: yii\db\ColumnSchemaBuilder::after()
Adds an AFTER
constraint to the column.
Note: MySQL, Oracle and Cubrid support only.
public $this after ( $after ) | ||
$after | string |
The column after which $this column will be added. |
public function after($after)
{
$this->after = $after;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::append()
Specify additional SQL to be appended to column definition.
Position modifiers will be appended after column definition in databases that support them.
public $this append ( $sql ) | ||
$sql | string |
The SQL string to be appended. |
public function append($sql)
{
$this->append = $sql;
return $this;
}
Builds the after constraint for the column. Defaults to unsupported.
protected string buildAfterString ( ) | ||
return | string |
A string containing the AFTER constraint. |
---|
protected function buildAfterString()
{
return $this->after !== null ?
' AFTER ' . $this->db->quoteColumnName($this->after) :
'';
}
Defined in: yii\db\ColumnSchemaBuilder::buildAppendString()
Builds the custom string that's appended to column definition.
protected string buildAppendString ( ) | ||
return | string |
Custom string to append. |
---|
protected function buildAppendString()
{
return $this->append !== null ? ' ' . $this->append : '';
}
Defined in: yii\db\ColumnSchemaBuilder::buildCheckString()
Builds the check constraint for the column.
protected string buildCheckString ( ) | ||
return | string |
A string containing the CHECK constraint. |
---|
protected function buildCheckString()
{
return $this->check !== null ? " CHECK ({$this->check})" : '';
}
Builds the comment specification for the column.
protected string buildCommentString ( ) | ||
return | string |
A string containing the COMMENT keyword and the comment itself |
---|
protected function buildCommentString()
{
return $this->comment !== null ? ' COMMENT ' . $this->db->quoteValue($this->comment) : '';
}
Defined in: yii\db\ColumnSchemaBuilder::buildCompleteString()
Returns the complete column definition from input format.
protected string buildCompleteString ( $format ) | ||
$format | string |
The format of the definition. |
return | string |
A string containing the complete column definition. |
---|
protected function buildCompleteString($format)
{
$placeholderValues = [
'{type}' => $this->type,
'{length}' => $this->buildLengthString(),
'{unsigned}' => $this->buildUnsignedString(),
'{notnull}' => $this->buildNotNullString(),
'{unique}' => $this->buildUniqueString(),
'{default}' => $this->buildDefaultString(),
'{check}' => $this->buildCheckString(),
'{comment}' => $this->buildCommentString(),
'{pos}' => $this->isFirst ? $this->buildFirstString() : $this->buildAfterString(),
'{append}' => $this->buildAppendString(),
];
return strtr($format, $placeholderValues);
}
Defined in: yii\db\ColumnSchemaBuilder::buildDefaultString()
Builds the default value specification for the column.
protected string buildDefaultString ( ) | ||
return | string |
String with default value of column. |
---|
protected function buildDefaultString()
{
$defaultValue = $this->buildDefaultValue();
if ($defaultValue === null) {
return '';
}
return ' DEFAULT ' . $defaultValue;
}
Defined in: yii\db\ColumnSchemaBuilder::buildDefaultValue()
Return the default value for the column.
protected string|null buildDefaultValue ( ) | ||
return | string|null |
String with default value of column. |
---|
protected function buildDefaultValue()
{
if ($this->default === null) {
return $this->isNotNull === false ? 'NULL' : null;
}
switch (gettype($this->default)) {
case 'double':
// ensure type cast always has . as decimal separator in all locales
$defaultValue = StringHelper::floatToString($this->default);
break;
case 'boolean':
$defaultValue = $this->default ? 'TRUE' : 'FALSE';
break;
case 'integer':
case 'object':
$defaultValue = (string) $this->default;
break;
default:
$defaultValue = "'{$this->default}'";
}
return $defaultValue;
}
Builds the first constraint for the column. Defaults to unsupported.
protected string buildFirstString ( ) | ||
return | string |
A string containing the FIRST constraint. |
---|
protected function buildFirstString()
{
return $this->isFirst ? ' FIRST' : '';
}
Defined in: yii\db\ColumnSchemaBuilder::buildLengthString()
Builds the length/precision part of the column.
protected string buildLengthString ( ) |
protected function buildLengthString()
{
if ($this->length === null || $this->length === []) {
return '';
}
if (is_array($this->length)) {
$this->length = implode(',', $this->length);
}
return "({$this->length})";
}
Defined in: yii\db\ColumnSchemaBuilder::buildNotNullString()
Builds the not null constraint for the column.
protected string buildNotNullString ( ) | ||
return | string |
Returns 'NOT NULL' if $isNotNull is true, 'NULL' if $isNotNull is false or an empty string otherwise. |
---|
protected function buildNotNullString()
{
if ($this->isNotNull === true) {
return ' NOT NULL';
} elseif ($this->isNotNull === false) {
return ' NULL';
}
return '';
}
Defined in: yii\db\ColumnSchemaBuilder::buildUniqueString()
Builds the unique constraint for the column.
protected string buildUniqueString ( ) | ||
return | string |
Returns string 'UNIQUE' if $isUnique is true, otherwise it returns an empty string. |
---|
protected function buildUniqueString()
{
return $this->isUnique ? ' UNIQUE' : '';
}
Builds the unsigned string for column. Defaults to unsupported.
protected string buildUnsignedString ( ) | ||
return | string |
A string containing UNSIGNED keyword. |
---|
protected function buildUnsignedString()
{
return $this->isUnsigned ? ' UNSIGNED' : '';
}
Defined in: yii\base\BaseObject::canGetProperty()
Returns a value indicating whether a property can be read.
A property is readable if:
- the class has a getter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when
$checkVars
is true);
See also canSetProperty().
public boolean canGetProperty ( $name, $checkVars = true ) | ||
$name | string |
The property name |
$checkVars | boolean |
Whether to treat member variables as properties |
return | boolean |
Whether the property can be read |
---|
public function canGetProperty($name, $checkVars = true)
{
return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}
Defined in: yii\base\BaseObject::canSetProperty()
Returns a value indicating whether a property can be set.
A property is writable if:
- the class has a setter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when
$checkVars
is true);
See also canGetProperty().
public boolean canSetProperty ( $name, $checkVars = true ) | ||
$name | string |
The property name |
$checkVars | boolean |
Whether to treat member variables as properties |
return | boolean |
Whether the property can be written |
---|
public function canSetProperty($name, $checkVars = true)
{
return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}
Defined in: yii\db\ColumnSchemaBuilder::check()
Sets a CHECK
constraint for the column.
public $this check ( $check ) | ||
$check | string |
The SQL of the |
public function check($check)
{
$this->check = $check;
return $this;
}
::class
instead.
Defined in: yii\base\BaseObject::className()
Returns the fully qualified name of this class.
public static string className ( ) | ||
return | string |
The fully qualified name of this class. |
---|
public static function className()
{
return get_called_class();
}
Defined in: yii\db\ColumnSchemaBuilder::comment()
Specifies the comment for column.
public $this comment ( $comment ) | ||
$comment | string |
The comment |
public function comment($comment)
{
$this->comment = $comment;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::defaultExpression()
Specify the default SQL expression for the column.
public $this defaultExpression ( $default ) | ||
$default | string |
The default value expression. |
public function defaultExpression($default)
{
$this->default = new Expression($default);
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::defaultValue()
Specify the default value for the column.
public $this defaultValue ( $default ) | ||
$default | mixed |
The default value. |
public function defaultValue($default)
{
if ($default === null) {
$this->null();
}
$this->default = $default;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::first()
Adds an FIRST
constraint to the column.
Note: MySQL, Oracle and Cubrid support only.
public $this first ( ) |
public function first()
{
$this->isFirst = true;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::getCategoryMap()
public array getCategoryMap ( ) | ||
return | array |
Mapping of abstract column types (keys) to type categories (values). |
---|
public function getCategoryMap()
{
return static::$typeCategoryMap;
}
Defined in: yii\db\ColumnSchemaBuilder::getTypeCategory()
Returns the category of the column type.
protected string getTypeCategory ( ) | ||
return | string |
A string containing the column type category name. |
---|
protected function getTypeCategory()
{
return isset($this->categoryMap[$this->type]) ? $this->categoryMap[$this->type] : null;
}
Defined in: yii\base\BaseObject::hasMethod()
Returns a value indicating whether a method is defined.
The default implementation is a call to php function method_exists()
.
You may override this method when you implemented the php magic method __call()
.
public boolean hasMethod ( $name ) | ||
$name | string |
The method name |
return | boolean |
Whether the method is defined |
---|
public function hasMethod($name)
{
return method_exists($this, $name);
}
Defined in: yii\base\BaseObject::hasProperty()
Returns a value indicating whether a property is defined.
A property is defined if:
- the class has a getter or setter method associated with the specified name (in this case, property name is case-insensitive);
- the class has a member variable with the specified name (when
$checkVars
is true);
See also:
public boolean hasProperty ( $name, $checkVars = true ) | ||
$name | string |
The property name |
$checkVars | boolean |
Whether to treat member variables as properties |
return | boolean |
Whether the property is defined |
---|
public function hasProperty($name, $checkVars = true)
{
return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}
Defined in: yii\base\BaseObject::init()
Initializes the object.
This method is invoked at the end of the constructor after the object is initialized with the given configuration.
public void init ( ) |
public function init()
{
}
Defined in: yii\db\ColumnSchemaBuilder::notNull()
Adds a NOT NULL
constraint to the column.
public $this notNull ( ) |
public function notNull()
{
$this->isNotNull = true;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::null()
Adds a NULL
constraint to the column.
public $this null ( ) |
public function null()
{
$this->isNotNull = false;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::setCategoryMap()
public void setCategoryMap ( $categoryMap ) | ||
$categoryMap | array |
Mapping of abstract column types (keys) to type categories (values). |
public function setCategoryMap($categoryMap)
{
static::$typeCategoryMap = $categoryMap;
}
Defined in: yii\db\ColumnSchemaBuilder::unique()
Adds a UNIQUE
constraint to the column.
public $this unique ( ) |
public function unique()
{
$this->isUnique = true;
return $this;
}
Defined in: yii\db\ColumnSchemaBuilder::unsigned()
Marks column as unsigned.
public $this unsigned ( ) |
public function unsigned()
{
switch ($this->type) {
case Schema::TYPE_PK:
$this->type = Schema::TYPE_UPK;
break;
case Schema::TYPE_BIGPK:
$this->type = Schema::TYPE_UBIGPK;
break;
}
$this->isUnsigned = true;
return $this;
}