0 フォロワー

クラス yii\db\ColumnSchema

継承yii\db\ColumnSchema » yii\base\BaseObject
実装yii\base\Configurable
サブクラスyii\db\mssql\ColumnSchemayii\db\mysql\ColumnSchemayii\db\pgsql\ColumnSchema
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/ColumnSchema.php

ColumnSchemaクラスは、データベーステーブル内の列のメタデータを表します。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$allowNull boolean この列がNULLを許容するかどうか。 yii\db\ColumnSchema
$autoIncrement boolean この列が自動インクリメントかどうか。 yii\db\ColumnSchema
$comment string この列のコメント。 yii\db\ColumnSchema
$dbType string この列のDB型。 yii\db\ColumnSchema
$defaultValue mixed この列のデフォルト値。 yii\db\ColumnSchema
$enumValues array 列挙可能な値。 yii\db\ColumnSchema
$isPrimaryKey boolean この列が主キーかどうか。 yii\db\ColumnSchema
$name string この列の名前(引用符なし)。 yii\db\ColumnSchema
$phpType string この列のPHP型。 yii\db\ColumnSchema
$precision integer 数値の場合、列データの精度。 yii\db\ColumnSchema
$scale integer 数値の場合、列データのスケール。 yii\db\ColumnSchema
$size integer 列の表示サイズ。 yii\db\ColumnSchema
$type string この列の抽象型。 yii\db\ColumnSchema
$unsigned boolean この列が符号なしかどうか。 yii\db\ColumnSchema

公開メソッド

継承されたメソッドを非表示

メソッド 説明 定義元
__call() クラスメソッドではない、指定された名前のメソッドを呼び出します。 yii\base\BaseObject
__construct() コンストラクタ。 yii\base\BaseObject
__get() オブジェクトのプロパティの値を返します。 yii\base\BaseObject
__isset() プロパティが設定されているか(定義されていてNULLでないか)を確認します。 yii\base\BaseObject
__set() オブジェクトのプロパティの値を設定します。 yii\base\BaseObject
__unset() オブジェクトのプロパティをNULLに設定します。 yii\base\BaseObject
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\BaseObject
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\BaseObject
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
dbTypecast() $type$dbType に従って、DBクエリで使用するための入力値を変換します。 yii\db\ColumnSchema
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject
phpTypecast() データベースから取得した後、$phpType に従って入力値を変換します。 yii\db\ColumnSchema

保護されたメソッド

継承されたメソッドを非表示

メソッド 説明 定義元
typecast() データベースから取得した後、$phpType に従って入力値を変換します。 yii\db\ColumnSchema

プロパティの詳細

継承されたプロパティを非表示

$allowNull public property

この列がNULLを許容するかどうか。

public boolean $allowNull null
$autoIncrement public property

この列が自動インクリメントかどうか。

public boolean $autoIncrement false
$comment public property

この列のコメント。すべてのDBMSがこの機能をサポートしているわけではありません。

public string $comment null
$dbType public property

この列のDB型。可能なDB型はDBMSの種類によって異なります。

public string $dbType null
$defaultValue public property

この列のデフォルト値。

public mixed $defaultValue null
$enumValues public プロパティ

列挙可能な値。このカラムが列挙型として宣言されている場合のみ設定されます。

public array $enumValues null
$isPrimaryKey public プロパティ

この列が主キーかどうか。

public boolean $isPrimaryKey null
$name public プロパティ

この列の名前(引用符なし)。

public string $name null
$phpType public プロパティ

このカラムのPHP型。可能なPHP型には、stringbooleanintegerdoublearrayなどがあります。

public string $phpType null
$precision public プロパティ

数値の場合、列データの精度。

public integer $precision null
$scale public プロパティ

数値の場合、列データのスケール。

public integer $scale null
$size public プロパティ

列の表示サイズ。

public integer $size null
$type public プロパティ

このカラムの抽象的な型。可能な抽象型には、char、string、text、boolean、smallint、integer、bigint、float、decimal、datetime、timestamp、time、date、binary、moneyなどがあります。

public string $type null
$unsigned public プロパティ

このカラムが符号なしかどうか。$typesmallintinteger、またはbigintの場合にのみ意味を持ちます。

public boolean $unsigned null

メソッドの詳細

継承されたメソッドを非表示

__call() public メソッド

定義先: yii\base\BaseObject::__call()

クラスメソッドではない、指定された名前のメソッドを呼び出します。

これはPHPのマジックメソッドであり、未知のメソッドが呼び出された場合に暗黙的に呼び出されるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドパラメータ

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

未知のメソッド呼び出し時

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__construct() public メソッド

定義先: yii\base\BaseObject::__construct()

コンストラクタ。

デフォルトの実装では、次の2つのことを行います。

  • 指定された設定$configを使用してオブジェクトを初期化します。
  • init()を呼び出します。

このメソッドを子クラスでオーバーライドする場合は、

  • コンストラクタの最後の引数を、ここにある$configのように設定配列にすることをお勧めします。
  • コンストラクタの最後に親の実装を呼び出してください。
public void __construct ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public メソッド

定義先: yii\base\BaseObject::__get()

オブジェクトのプロパティの値を返します。

これはPHPのマジックメソッドであり、$value = $object->property;を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

__set()も参照してください。

public mixed __get ( $name )
$name string

プロパティ名

戻り値 mixed

プロパティ値

例外 yii\base\UnknownPropertyException

プロパティが定義されていない場合

例外 yii\base\InvalidCallException

プロパティが書き込み専用の場合

                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 メソッド

定義されている場所: yii\base\BaseObject::__isset()

プロパティが設定されているか(定義されていてNULLでないか)を確認します。

これはPHPのマジックメソッドであり、`isset($object->property)`を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

プロパティが定義されていない場合、falseが返されることに注意してください。

こちらも参照してください https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

戻り値 boolean

指定されたプロパティが設定されているかどうか(nullではないかどうか)。

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public メソッド

定義されている場所: yii\base\BaseObject::__set()

オブジェクトのプロパティの値を設定します。

これはPHPのマジックメソッドであり、`$object->property = $value;`を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

こちらも参照してください __get().

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティ値

例外 yii\base\UnknownPropertyException

プロパティが定義されていない場合

例外 yii\base\InvalidCallException

プロパティが読み取り専用の場合

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

            
__unset() public メソッド

定義されている場所: yii\base\BaseObject::__unset()

オブジェクトのプロパティをNULLに設定します。

これはPHPのマジックメソッドであり、`unset($object->property)`を実行した際に暗黙的に呼び出されるため、直接呼び出さないでください。

プロパティが定義されていない場合、このメソッドは何もしません。プロパティが読み取り専用の場合、例外がスローされます。

こちらも参照してください https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name string

プロパティ名

例外 yii\base\InvalidCallException

プロパティが読み取り専用の場合。

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

            
canGetProperty() public メソッド

定義されている場所: yii\base\BaseObject::canGetProperty()

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティは、以下の場合に読み取り可能です。

  • クラスに、指定された名前と関連付けられたゲッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合(`$checkVars`がtrueの場合)。

こちらも参照してください canSetProperty().

public boolean canGetProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

戻り値 boolean

プロパティを読み取ることができるかどうか

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public メソッド

定義されている場所: yii\base\BaseObject::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティは、以下の場合に書き込み可能です。

  • クラスに、指定された名前と関連付けられたセッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合(`$checkVars`がtrueの場合)。

こちらも参照してください canGetProperty().

public boolean canSetProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

戻り値 boolean

プロパティを書き込むことができるかどうか

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

            
className() public static メソッド
2.0.14以降非推奨。PHP >= 5.5では、代わりに`::class`を使用してください。

定義されている場所: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
戻り値 string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
dbTypecast() public メソッド

$type$dbType に従って、DBクエリで使用するための入力値を変換します。

値がnullまたはyii\db\Expressionの場合、変換されません。

public mixed dbTypecast ( $value )
$value mixed

入力値

戻り値 mixed

変換後の値。これは、値を最初の要素として、PDO型を2番目の要素として含む配列の場合もあります。

                public function dbTypecast($value)
{
    // the default implementation does the same as casting for PHP, but it should be possible
    // to override this with annotation of explicit PDO type.
    return $this->typecast($value);
}

            
hasMethod() public メソッド

定義されている場所: yii\base\BaseObject::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

デフォルトの実装は、PHP関数`method_exists()`の呼び出しです。PHPのマジックメソッド`__call()`を実装した場合は、このメソッドをオーバーライドできます。

public boolean hasMethod ( $name )
$name string

メソッド名

戻り値 boolean

メソッドが定義されているかどうか

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public メソッド

定義されている場所: yii\base\BaseObject::hasProperty()

プロパティが定義されているかどうかを示す値を返します。

プロパティは、以下の場合に定義されています。

  • クラスに、指定された名前と関連付けられたゲッターメソッドまたはセッターメソッドがある場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバ変数がある場合(`$checkVars`がtrueの場合)。

こちらも参照してください

public boolean hasProperty ( $name, $checkVars true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

戻り値 boolean

プロパティが定義されているかどうか

                public function hasProperty($name, $checkVars = true)
{
    return $this->canGetProperty($name, $checkVars) || $this->canSetProperty($name, false);
}

            
init() public メソッド

定義されている場所: yii\base\BaseObject::init()

オブジェクトを初期化します。

このメソッドは、指定された設定でオブジェクトが初期化された後、コンストラクタの最後に呼び出されます。

public void init ( )

                public function init()
{
}

            
phpTypecast() publicメソッド

データベースから取得した後、$phpType に従って入力値を変換します。

値がnullまたはyii\db\Expressionの場合、変換されません。

public mixed phpTypecast ( $value )
$value mixed

入力値

戻り値 mixed

変換後の値

                public function phpTypecast($value)
{
    return $this->typecast($value);
}

            
typecast() protectedメソッド (バージョン2.0.3から利用可能)

データベースから取得した後、$phpType に従って入力値を変換します。

値がnullまたはyii\db\Expressionの場合、変換されません。

protected mixed typecast ( $value )
$value mixed

入力値

戻り値 mixed

変換後の値

                protected function typecast($value)
{
    if (
        $value === ''
        && !in_array(
            $this->type,
            [
                Schema::TYPE_TEXT,
                Schema::TYPE_STRING,
                Schema::TYPE_BINARY,
                Schema::TYPE_CHAR
            ],
            true
        )
    ) {
        return null;
    }
    if (
        $value === null
        || gettype($value) === $this->phpType
        || $value instanceof ExpressionInterface
        || $value instanceof Query
    ) {
        return $value;
    }
    if (
        is_array($value)
        && count($value) === 2
        && isset($value[1])
        && in_array($value[1], $this->getPdoParamTypes(), true)
    ) {
        return new PdoValue($value[0], $value[1]);
    }
    switch ($this->phpType) {
        case 'resource':
        case 'string':
            if (is_resource($value)) {
                return $value;
            }
            if (is_float($value)) {
                // ensure type cast always has . as decimal separator in all locales
                return StringHelper::floatToString($value);
            }
            if (
                is_numeric($value)
                && ColumnSchemaBuilder::CATEGORY_NUMERIC === ColumnSchemaBuilder::$typeCategoryMap[$this->type]
            ) {
                // https://github.com/yiisoft/yii2/issues/14663
                return $value;
            }
            if (PHP_VERSION_ID >= 80100 && is_object($value) && $value instanceof \BackedEnum) {
                return (string) $value->value;
            }
            return (string) $value;
        case 'integer':
            if (PHP_VERSION_ID >= 80100 && is_object($value) && $value instanceof \BackedEnum) {
                return (int) $value->value;
            }
            return (int) $value;
        case 'boolean':
            // treating a 0 bit value as false too
            // https://github.com/yiisoft/yii2/issues/9006
            return (bool) $value && $value !== "\0" && strtolower($value) !== 'false';
        case 'double':
            return (float) $value;
    }
    return $value;
}