0 follower

クラス yii\db\mysql\ColumnSchema

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

MySQLデータベースの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
$disableJsonSupport boolean カラムスキーマがJSONサポート機能の使用を省略するかどうか。 yii\db\mysql\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() DBクエリで使用するために、$type$dbTypeに従って入力値を変換します。 yii\db\mysql\ColumnSchema
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject
phpTypecast() データベースから取得した後、$phpTypeに従って入力値を変換します。 yii\db\mysql\ColumnSchema

保護されたメソッド

継承されたメソッドを隠す

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

プロパティの詳細

継承されたプロパティを隠す

$disableJsonSupport public property (バージョン2.0.14.1以降で使用可能)
2.0.14.1以降非推奨であり、2.1で削除されます。

カラムスキーマがJSONサポート機能の使用を省略するかどうか。このプロパティを使用して、Yii 2.0.14へのアップグレードを容易にすることができます。デフォルトはfalseで、JSONサポートが有効になります。

メソッドの詳細

継承されたメソッドを隠す

__call() public method

定義元: 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 method

定義元: 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メソッド

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

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

public mixed dbTypecast ( $value )
$value mixed

入力値

戻り値 mixed

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

                public function dbTypecast($value)
{
    if ($value === null) {
        return $value;
    }
    if ($value instanceof ExpressionInterface) {
        return $value;
    }
    if (!$this->disableJsonSupport && $this->dbType === Schema::TYPE_JSON) {
        return new JsonExpression($value, $this->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)
{
    if ($value === null) {
        return null;
    }
    if (!$this->disableJsonSupport && $this->type === Schema::TYPE_JSON) {
        return json_decode($value, true);
    }
    return parent::phpTypecast($value);
}

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

定義場所: yii\db\ColumnSchema::typecast()

データベースから取得した後、$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;
}