Class yii\db\mysql\ColumnSchemaBuilder

Inheritanceyii\db\mysql\ColumnSchemaBuilder » yii\db\ColumnSchemaBuilder » yii\base\BaseObject
Implementsyii\base\Configurable
Available since version2.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

Hide inherited 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
$categoryMap array Mapping of abstract column types (keys) to type categories (values). yii\db\ColumnSchemaBuilder
$check string The CHECK constraint for the column. yii\db\ColumnSchemaBuilder
$comment string Comment value of the column. yii\db\ColumnSchemaBuilder
$db yii\db\Connection The current database connection. 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
$typeCategoryMap array Mapping of abstract column types (keys) to type categories (values). yii\db\ColumnSchemaBuilder

Protected Properties

Hide inherited properties

Property Type Description Defined By

Public Methods

Hide inherited 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

Hide inherited 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

Hide inherited 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

Hide inherited methods

__call() public method

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()");
}

            
__construct() public method

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);
}

            
__get() public method

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);
}

            
__isset() public method

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.

See also https://www.php.net/manual/en/function.isset.php.

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;
}

            
__set() public method

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);
    }
}

            
__toString() public method

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);
}

            
__unset() public method

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.

See also https://www.php.net/manual/en/function.unset.php.

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);
    }
}

            
after() public method (available since version 2.0.8)

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;
}

            
append() public method (available since version 2.0.9)

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;
}

            
buildAfterString() protected method (available since version 2.0.8)

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) :
        '';
}

            
buildAppendString() protected method (available since version 2.0.9)

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 : '';
}

            
buildCheckString() protected method

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})" : '';
}

            
buildCommentString() protected method (available since version 2.0.8)

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) : '';
}

            
buildCompleteString() protected method (available since version 2.0.8)

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);
}

            
buildDefaultString() protected method

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;
}

            
buildDefaultValue() protected method

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;
}

            
buildFirstString() protected method (available since version 2.0.8)

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' : '';
}

            
buildLengthString() protected method

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})";
}

            
buildNotNullString() protected method

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 '';
}

            
buildUniqueString() protected method

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' : '';
}

            
buildUnsignedString() protected method (available since version 2.0.7)

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' : '';
}

            
canGetProperty() public method

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);
}

            
canSetProperty() public method

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);
}

            
check() public method

Defined in: yii\db\ColumnSchemaBuilder::check()

Sets a CHECK constraint for the column.

public $this check ( $check )
$check string

The SQL of the CHECK constraint to be added.

                public function check($check)
{
    $this->check = $check;
    return $this;
}

            
className() public static method
Deprecated since 2.0.14. On PHP >=5.5, use ::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();
}

            
comment() public method (available since version 2.0.8)

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;
}

            
defaultExpression() public method (available since version 2.0.7)

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;
}

            
defaultValue() public method

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;
}

            
first() public method (available since version 2.0.8)

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;
}

            
getCategoryMap() public method (available since version 2.0.43)
public array getCategoryMap ( )
return array

Mapping of abstract column types (keys) to type categories (values).

                public function getCategoryMap()
{
    return static::$typeCategoryMap;
}

            
getTypeCategory() protected method (available since version 2.0.8)

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;
}

            
hasMethod() public method

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);
}

            
hasProperty() public method

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);
}

            
init() public method

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()
{
}

            
notNull() public method

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;
}

            
null() public method (available since version 2.0.9)

Defined in: yii\db\ColumnSchemaBuilder::null()

Adds a NULL constraint to the column.

public $this null ( )

                public function null()
{
    $this->isNotNull = false;
    return $this;
}

            
setCategoryMap() public method (available since version 2.0.43)
public void setCategoryMap ( $categoryMap )
$categoryMap array

Mapping of abstract column types (keys) to type categories (values).

                public function setCategoryMap($categoryMap)
{
    static::$typeCategoryMap = $categoryMap;
}

            
unique() public method

Defined in: yii\db\ColumnSchemaBuilder::unique()

Adds a UNIQUE constraint to the column.

public $this unique ( )

                public function unique()
{
    $this->isUnique = true;
    return $this;
}

            
unsigned() public method (available since version 2.0.7)

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;
}