0 フォロワー

クラス yii\db\oci\Schema

継承yii\db\oci\Schema » yii\db\Schema » yii\base\BaseObject
実装yii\base\Configurable, yii\db\ConstraintFinderInterface
使用トレイトyii\db\ConstraintFinderTrait
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/db/oci/Schema.php

Schemaは、Oracleデータベースからメタデータを取得するためのクラスです。

パブリックプロパティ

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

プロパティ 説明 定義元
$columnQuoteCharacter 文字列|文字列[] カラム名を引用するために使用される文字。 yii\db\Schema
$columnSchemaClass 文字列|配列 カラムスキーマクラスまたはクラス設定 yii\db\Schema
$db yii\db\Connection データベース接続 yii\db\Schema
$defaultSchema 文字列 現在のセッションで使用されるデフォルトのスキーマ名。 yii\db\Schema
$exceptionMap 配列 DBエラーと対応する例外のマッピング。左側の部分がDBエラーメッセージに見つかった場合、右側の部分の例外クラスが使用されます。 yii\db\oci\Schema
$lastInsertID 文字列 最後に挿入された行の行ID、またはシーケンスオブジェクトから取得した最後の値。 yii\db\oci\Schema
$queryBuilder yii\db\QueryBuilder この接続のクエリビルダー。 yii\db\Schema
$schemaChecks \yii\db\CheckConstraint[][] データベース内のすべてのテーブルのチェック制約。 yii\db\ConstraintFinderTrait
$schemaDefaultValues yii\db\DefaultValueConstraint[] データベース内のすべてのテーブルのデフォルト値制約。 yii\db\ConstraintFinderTrait
$schemaForeignKeys \yii\db\ForeignKeyConstraint[][] データベース内のすべてのテーブルの外部キー。 yii\db\ConstraintFinderTrait
$schemaIndexes \yii\db\IndexConstraint[][] データベース内のすべてのテーブルのインデックス。 yii\db\ConstraintFinderTrait
$schemaNames 文字列[] システムスキーマを除く、データベース内のすべてのスキーマ名。 yii\db\Schema
$schemaPrimaryKeys yii\db\Constraint[] データベース内のすべてのテーブルの主キー。 yii\db\ConstraintFinderTrait
$schemaUniques \yii\db\IndexConstraint[][] データベース内のすべてのテーブルの一意制約。 yii\db\ConstraintFinderTrait
$serverVersion 文字列 文字列としてのサーバーバージョン。 yii\db\Schema
$tableNames 文字列[] データベース内のすべてのテーブル名。 yii\db\Schema
$tableQuoteCharacter 文字列|文字列[] スキーマ、テーブルなどを引用するために使用される文字。 yii\db\oci\Schema
$tableSchemas yii\db\TableSchema[] データベース内のすべてのテーブルのメタデータ。 yii\db\Schema
$transactionIsolationLevel 文字列 このトランザクションに使用するトランザクション分離レベル。 yii\db\Schema

保護されたプロパティ

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

プロパティ 説明 定義元

パブリックメソッド

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

メソッド 説明 定義元
__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
convertException() 可能であれば、DB例外をより具体的な例外に変換します。 yii\db\Schema
createColumnSchemaBuilder() 型と値の精度を指定して、カラムスキーマビルダーインスタンスを作成します。 yii\db\oci\Schema
createQueryBuilder() データベースのクエリビルダーを作成します。 yii\db\oci\Schema
createSavepoint() 新しいセーブポイントを作成します。 yii\db\Schema
findUniqueIndexes() 指定されたテーブルのすべての一意インデックスを返します。 yii\db\oci\Schema
getLastInsertID() yii\db\oci\Schema
getPdoType() 指定されたPHPデータ値のPDO型を決定します。 yii\db\Schema
getQueryBuilder() yii\db\Schema
getRawTableName() 指定されたテーブル名の実際の名前を返します。 yii\db\Schema
getSchemaChecks() データベース内のすべてのテーブルのチェック制約を返します。 yii\db\ConstraintFinderTrait
getSchemaDefaultValues() データベース内のすべてのテーブルのデフォルト値制約を返します。 yii\db\ConstraintFinderTrait
getSchemaForeignKeys() データベース内のすべてのテーブルの外部キーを返します。 yii\db\ConstraintFinderTrait
getSchemaIndexes() データベース内のすべてのテーブルのインデックスを返します。 yii\db\ConstraintFinderTrait
getSchemaNames() システムスキーマを除く、データベース内のすべてのスキーマ名を返します。 yii\db\Schema
getSchemaPrimaryKeys() データベース内のすべてのテーブルの主キーを返します。 yii\db\ConstraintFinderTrait
getSchemaUniques() データベース内のすべてのテーブルの一意制約を返します。 yii\db\ConstraintFinderTrait
getServerVersion() \version_compare()で比較可能な文字列としてサーバーバージョンを返します。 yii\db\Schema
getTableChecks() 名前付きテーブルのチェック制約情報を取得します。 yii\db\ConstraintFinderTrait
getTableDefaultValues() 名前付きテーブルのデフォルト値制約情報を取得します。 yii\db\ConstraintFinderTrait
getTableForeignKeys() 名前付きテーブルの外部キー情報を取得します。 yii\db\ConstraintFinderTrait
getTableIndexes() 名前付きテーブルのインデックス情報を取得します。 yii\db\ConstraintFinderTrait
getTableNames() データベース内のすべてのテーブル名を返します。 yii\db\Schema
getTablePrimaryKey() 名前付きテーブルの主キーを取得します。 yii\db\ConstraintFinderTrait
getTableSchema() 名前付きテーブルのメタデータを取得します。 yii\db\Schema
getTableSchemas() データベース内のすべてのテーブルのメタデータを返します。 yii\db\Schema
getTableUniques() 名前付きテーブルの一意制約情報を取得します。 yii\db\ConstraintFinderTrait
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\db\oci\Schema
insert() INSERTコマンドを実行し、主キーの値を返します。 yii\db\oci\Schema
isReadQuery() SQLステートメントが読み取り目的かどうかを示す値を返します。 yii\db\Schema
quoteColumnName() クエリで使用するために、カラム名を引用符で囲みます。 yii\db\Schema
quoteSimpleColumnName() クエリで使用するために、単純なカラム名を引用符で囲みます。 yii\db\Schema
quoteSimpleTableName() クエリで使用するために、単純なテーブル名を引用符で囲みます。 yii\db\oci\Schema
quoteTableName() クエリで使用するために、テーブル名を引用符で囲みます。 yii\db\Schema
quoteValue() クエリで使用するために、文字列値を引用符で囲みます。 yii\db\Schema
refresh() スキーマをリフレッシュします。 yii\db\Schema
refreshTableSchema() 特定のテーブルスキーマをリフレッシュします。 yii\db\Schema
releaseSavepoint() 既存のセーブポイントを解放します。 yii\db\oci\Schema
rollBackSavepoint() 以前に作成されたセーブポイントまでロールバックします。 yii\db\Schema
setTransactionIsolationLevel() 現在のトランザクションの分離レベルを設定します。 yii\db\Schema
supportsSavepoint() yii\db\Schema
unquoteSimpleColumnName() 単純なカラム名の引用符を外します。 yii\db\Schema
unquoteSimpleTableName() 単純なテーブル名の引用符を外します。 yii\db\Schema

保護されたメソッド

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

メソッド 説明 定義元
createColumn() ColumnSchemaインスタンスを作成します。 yii\db\oci\Schema
createColumnSchema() データベースのカラムスキーマを作成します。 yii\db\Schema
extractColumnSize() カラムのDBタイプからサイズ、精度、スケールの情報を抽出します。 yii\db\oci\Schema
extractColumnType() 指定されたカラムのデータ型を抽出します。 yii\db\oci\Schema
findColumns() テーブルカラムのメタデータを収集します。 yii\db\oci\Schema
findConstraints() 制約を見つけ、渡されたTableSchemaオブジェクトに入力します。 yii\db\oci\Schema
findSchemaNames() デフォルトのスキーマを含む、データベース内のすべてのスキーマ名を返しますが、システムスキーマは除きます。 yii\db\oci\Schema
findTableNames() データベース内のすべてのテーブル名を返します。 yii\db\oci\Schema
getCacheKey() 指定されたテーブル名のキャッシュキーを返します。 yii\db\Schema
getCacheTag() キャッシュタグ名を返します。 yii\db\Schema
getColumnPhpType() 抽象DBタイプからPHPタイプを抽出します。 yii\db\Schema
getSchemaMetadata() 指定されたスキーマ内のすべてのテーブルについて、指定されたタイプのメタデータを返します。 yii\db\ConstraintFinderTrait
getTableMetadata() 指定されたテーブルについて、指定されたタイプのメタデータを返します。 yii\db\ConstraintFinderTrait
getTableNameParts() 完全なテーブル名を部分に分割します yii\db\Schema
loadTableChecks() yii\db\oci\Schema
loadTableDefaultValues() yii\db\oci\Schema
loadTableForeignKeys() yii\db\oci\Schema
loadTableIndexes() yii\db\oci\Schema
loadTablePrimaryKey() yii\db\oci\Schema
loadTableSchema() 指定されたテーブルのメタデータをロードします。 yii\db\oci\Schema
loadTableUniques() yii\db\oci\Schema
normalizePdoRowKeyCase() PDOのキーが大文字に設定されている場合、行の配列キーのケースを小文字に変更します。 yii\db\Schema
resolveTableName() テーブル名とスキーマ名(存在する場合)を解決します。 yii\db\oci\Schema
resolveTableNames() テーブル名とスキーマ名(存在する場合)を解決します。 yii\db\oci\Schema
setTableMetadata() 指定されたテーブルについて、指定されたタイプのメタデータを設定します。 yii\db\Schema

定数

継承された定数を隠す

定数 説明 定義元
SCHEMA_CACHE_VERSION 1 スキーマキャッシュのバージョン。キャッシュのデータ形式が変更されたときに、キャッシュされた値の非互換性を検出します。 yii\db\Schema
TYPE_BIGINT 'bigint' yii\db\Schema
TYPE_BIGPK 'bigpk' yii\db\Schema
TYPE_BINARY 'binary' yii\db\Schema
TYPE_BOOLEAN 'boolean' yii\db\Schema
TYPE_CHAR 'char' yii\db\Schema
TYPE_DATE 'date' yii\db\Schema
TYPE_DATETIME 'datetime' yii\db\Schema
TYPE_DECIMAL 'decimal' yii\db\Schema
TYPE_DOUBLE 'double' yii\db\Schema
TYPE_FLOAT 'float' yii\db\Schema
TYPE_INTEGER 'integer' yii\db\Schema
TYPE_JSON 'json' yii\db\Schema
TYPE_MONEY 'money' yii\db\Schema
TYPE_PK 'pk' yii\db\Schema
TYPE_SMALLINT 'smallint' yii\db\Schema
TYPE_STRING 'string' yii\db\Schema
TYPE_TEXT 'text' yii\db\Schema
TYPE_TIME 'time' yii\db\Schema
TYPE_TIMESTAMP 'timestamp' yii\db\Schema
TYPE_TINYINT 'tinyint' yii\db\Schema
TYPE_UBIGPK 'ubigpk' yii\db\Schema
TYPE_UPK 'upk' yii\db\Schema

プロパティの詳細

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

$exceptionMap public プロパティ

DBエラーと対応する例外のマッピング。左側の部分がDBエラーメッセージに見つかった場合、右側の部分の例外クラスが使用されます。

public array $exceptionMap = [
    
'ORA-00001: unique constraint' => 'yii\db\IntegrityException',
]
$lastInsertID public プロパティ

最後に挿入された行の行ID、またはシーケンスオブジェクトから取得した最後の値。

public string $lastInsertID null
$tableQuoteCharacter protected プロパティ (バージョン 2.0.14 から利用可能)

スキーマ、テーブルなどの名前を引用符で囲むために使用される文字。開始文字と終了文字が異なる場合、2文字の配列を使用できます。

メソッドの詳細

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

__call() public メソッド

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

クラスメソッドではない名前付きメソッドを呼び出します。

不明なメソッドが呼び出されたときに暗黙的に呼び出されるPHPのマジックメソッドであるため、このメソッドを直接呼び出さないでください。

public mixed __call ( $name, $params )
$name 文字列

メソッド名

$params 配列

メソッドパラメータ

return mixed

メソッドの戻り値

throws 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 配列

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

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

            
__get() public メソッド

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

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

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

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

public mixed __get ( $name )
$name 文字列

プロパティ名

return mixed

プロパティ値

throws yii\base\UnknownPropertyException

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

throws 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でないかを確認します。

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

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

参照: https://www.php.net/manual/en/function.isset.php.

public boolean __isset ( $name )
$name 文字列

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

return 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()

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

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

参照: __get()

public void __set ( $name, $value )
$name 文字列

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

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

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

throws 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に設定します。

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

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

参照: https://www.php.net/manual/en/function.unset.php.

public void __unset ( $name )
$name 文字列

プロパティ名

throws 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 文字列

プロパティ名

$checkVars boolean

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

return 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 文字列

プロパティ名

$checkVars boolean

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

return 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 ( )
return 文字列

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

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

            
convertException() public メソッド

定義元: yii\db\Schema::convertException()

可能であれば、DB例外をより具体的な例外に変換します。

public yii\db\Exception convertException ( Exception $e, $rawSql )
$e 例外
$rawSql 文字列

例外を生成した SQL

                public function convertException(\Exception $e, $rawSql)
{
    if ($e instanceof Exception) {
        return $e;
    }
    $exceptionClass = '\yii\db\Exception';
    foreach ($this->exceptionMap as $error => $class) {
        if (strpos($e->getMessage(), $error) !== false) {
            $exceptionClass = $class;
        }
    }
    $message = $e->getMessage() . "\nThe SQL being executed was: $rawSql";
    $errorInfo = $e instanceof \PDOException ? $e->errorInfo : null;
    return new $exceptionClass($message, $errorInfo, $e->getCode(), $e);
}

            
createColumn() protected メソッド

ColumnSchemaインスタンスを作成します。

protected yii\db\ColumnSchema createColumn ( $column )
$column 配列

                protected function createColumn($column)
{
    $c = $this->createColumnSchema();
    $c->name = $column['COLUMN_NAME'];
    $c->allowNull = $column['NULLABLE'] === 'Y';
    $c->comment = $column['COLUMN_COMMENT'] === null ? '' : $column['COLUMN_COMMENT'];
    $c->isPrimaryKey = false;
    $this->extractColumnType($c, $column['DATA_TYPE'], $column['DATA_PRECISION'], $column['DATA_SCALE'], $column['DATA_LENGTH']);
    $this->extractColumnSize($c, $column['DATA_TYPE'], $column['DATA_PRECISION'], $column['DATA_SCALE'], $column['DATA_LENGTH']);
    $c->phpType = $this->getColumnPhpType($c);
    if (!$c->isPrimaryKey) {
        if (stripos((string) $column['DATA_DEFAULT'], 'timestamp') !== false) {
            $c->defaultValue = null;
        } else {
            $defaultValue = (string) $column['DATA_DEFAULT'];
            if ($c->type === 'timestamp' && $defaultValue === 'CURRENT_TIMESTAMP') {
                $c->defaultValue = new Expression('CURRENT_TIMESTAMP');
            } else {
                if ($defaultValue !== null) {
                    if (
                        strlen($defaultValue) > 2
                        && strncmp($defaultValue, "'", 1) === 0
                        && substr($defaultValue, -1) === "'"
                    ) {
                        $defaultValue = substr($defaultValue, 1, -1);
                    } else {
                        $defaultValue = trim($defaultValue);
                    }
                }
                $c->defaultValue = $c->phpTypecast($defaultValue);
            }
        }
    }
    return $c;
}

            
createColumnSchema() protected メソッド

定義元: yii\db\Schema::createColumnSchema()

データベースのカラムスキーマを作成します。

このメソッドは、DBMS 固有のカラムスキーマを作成するために、子クラスによってオーバーライドされる場合があります。

protected yii\db\ColumnSchema createColumnSchema ( )
return yii\db\ColumnSchema

カラムスキーマのインスタンス。

throws yii\base\InvalidConfigException

カラムスキーマクラスを作成できない場合。

                protected function createColumnSchema()
{
    return Yii::createObject($this->columnSchemaClass);
}

            
createColumnSchemaBuilder() public メソッド (バージョン 2.0.6 以降で利用可能)

型と値の精度を指定して、カラムスキーマビルダーインスタンスを作成します。

このメソッドは、DBMS 固有のカラムスキーマビルダーを作成するために、子クラスによってオーバーライドされる場合があります。

public yii\db\ColumnSchemaBuilder createColumnSchemaBuilder ( $type, $length null )
$type 文字列

カラムのタイプ。参照: yii\db\oci\ColumnSchemaBuilder::$type

$length integer|string|array|null

カラムの長さまたは精度。参照: yii\db\oci\ColumnSchemaBuilder::$length

return yii\db\ColumnSchemaBuilder

カラムスキーマビルダーのインスタンス

                public function createColumnSchemaBuilder($type, $length = null)
{
    return Yii::createObject(ColumnSchemaBuilder::className(), [$type, $length]);
}

            
createQueryBuilder() public メソッド

データベースのクエリビルダーを作成します。

このメソッドは、DBMS 固有のクエリビルダーを作成するために、子クラスによってオーバーライドされる場合があります。

public yii\db\QueryBuilder createQueryBuilder ( )
return yii\db\QueryBuilder

クエリビルダーのインスタンス

                public function createQueryBuilder()
{
    return Yii::createObject(QueryBuilder::className(), [$this->db]);
}

            
createSavepoint() public メソッド

定義元: yii\db\Schema::createSavepoint()

新しいセーブポイントを作成します。

public void createSavepoint ( $name )
$name 文字列

セーブポイント名

                public function createSavepoint($name)
{
    $this->db->createCommand("SAVEPOINT $name")->execute();
}

            
extractColumnSize() protected メソッド

カラムのDBタイプからサイズ、精度、スケールの情報を抽出します。

protected void extractColumnSize ( $column, $dbType, $precision, $scale, $length )
$column yii\db\ColumnSchema
$dbType 文字列

カラムのDB型

$precision 文字列

桁数の合計。このパラメータはバージョン2.0.4から利用可能です。

$scale 文字列

小数点以下の桁数。このパラメータはバージョン2.0.4から利用可能です。

$length 文字列

文字型の長さ。このパラメータはバージョン2.0.4から利用可能です。

                protected function extractColumnSize($column, $dbType, $precision, $scale, $length)
{
    $column->size = trim((string) $length) === '' ? null : (int) $length;
    $column->precision = trim((string) $precision) === '' ? null : (int) $precision;
    $column->scale = trim((string) $scale) === '' ? null : (int) $scale;
}

            
extractColumnType() protected メソッド

指定されたカラムのデータ型を抽出します。

protected void extractColumnType ( $column, $dbType, $precision, $scale, $length )
$column yii\db\ColumnSchema
$dbType 文字列

DB型

$precision 文字列

桁数の合計。このパラメータはバージョン2.0.4から利用可能です。

$scale 文字列

小数点以下の桁数。このパラメータはバージョン2.0.4から利用可能です。

$length 文字列

文字型の長さ。このパラメータはバージョン2.0.4から利用可能です。

                protected function extractColumnType($column, $dbType, $precision, $scale, $length)
{
    $column->dbType = $dbType;
    if (strpos($dbType, 'FLOAT') !== false || strpos($dbType, 'DOUBLE') !== false) {
        $column->type = 'double';
    } elseif (strpos($dbType, 'NUMBER') !== false) {
        if ($scale === null || $scale > 0) {
            $column->type = 'decimal';
        } else {
            $column->type = 'integer';
        }
    } elseif (strpos($dbType, 'INTEGER') !== false) {
        $column->type = 'integer';
    } elseif (strpos($dbType, 'BLOB') !== false) {
        $column->type = 'binary';
    } elseif (strpos($dbType, 'CLOB') !== false) {
        $column->type = 'text';
    } elseif (strpos($dbType, 'TIMESTAMP') !== false) {
        $column->type = 'timestamp';
    } else {
        $column->type = 'string';
    }
}

            
findColumns() protected メソッド

テーブルカラムのメタデータを収集します。

protected boolean findColumns ( $table )
$table yii\db\TableSchema

テーブルスキーマ

return boolean

テーブルが存在するかどうか

                protected function findColumns($table)
{
    $sql = <<<'SQL'
CT
A.COLUMN_NAME,
A.DATA_TYPE,
A.DATA_PRECISION,
A.DATA_SCALE,
(
  CASE A.CHAR_USED WHEN 'C' THEN A.CHAR_LENGTH
    ELSE A.DATA_LENGTH
  END
) AS DATA_LENGTH,
A.NULLABLE,
A.DATA_DEFAULT,
COM.COMMENTS AS COLUMN_COMMENT
 ALL_TAB_COLUMNS A
INNER JOIN ALL_OBJECTS B ON B.OWNER = A.OWNER AND LTRIM(B.OBJECT_NAME) = LTRIM(A.TABLE_NAME)
LEFT JOIN ALL_COL_COMMENTS COM ON (A.OWNER = COM.OWNER AND A.TABLE_NAME = COM.TABLE_NAME AND A.COLUMN_NAME = COM.COLUMN_NAME)
E
A.OWNER = :schemaName
AND B.OBJECT_TYPE IN ('TABLE', 'VIEW', 'MATERIALIZED VIEW')
AND B.OBJECT_NAME = :tableName
R BY A.COLUMN_ID

    try {
        $columns = $this->db->createCommand($sql, [
            ':tableName' => $table->name,
            ':schemaName' => $table->schemaName,
        ])->queryAll();
    } catch (\Exception $e) {
        return false;
    }
    if (empty($columns)) {
        return false;
    }
    foreach ($columns as $column) {
        if ($this->db->slavePdo->getAttribute(\PDO::ATTR_CASE) === \PDO::CASE_LOWER) {
            $column = array_change_key_case($column, CASE_UPPER);
        }
        $c = $this->createColumn($column);
        $table->columns[$c->name] = $c;
    }
    return true;
}

            
findConstraints() protected メソッド

制約を見つけ、渡されたTableSchemaオブジェクトに入力します。

protected void findConstraints ( $table )
$table yii\db\TableSchema

                protected function findConstraints($table)
{
    $sql = <<<'SQL'
CT
/*+ PUSH_PRED(C) PUSH_PRED(D) PUSH_PRED(E) */
D.CONSTRAINT_NAME,
D.CONSTRAINT_TYPE,
C.COLUMN_NAME,
C.POSITION,
D.R_CONSTRAINT_NAME,
E.TABLE_NAME AS TABLE_REF,
F.COLUMN_NAME AS COLUMN_REF,
C.TABLE_NAME
 ALL_CONS_COLUMNS C
INNER JOIN ALL_CONSTRAINTS D ON D.OWNER = C.OWNER AND D.CONSTRAINT_NAME = C.CONSTRAINT_NAME
LEFT JOIN ALL_CONSTRAINTS E ON E.OWNER = D.R_OWNER AND E.CONSTRAINT_NAME = D.R_CONSTRAINT_NAME
LEFT JOIN ALL_CONS_COLUMNS F ON F.OWNER = E.OWNER AND F.CONSTRAINT_NAME = E.CONSTRAINT_NAME AND F.POSITION = C.POSITION
E
C.OWNER = :schemaName
AND C.TABLE_NAME = :tableName
R BY D.CONSTRAINT_NAME, C.POSITION

    $command = $this->db->createCommand($sql, [
        ':tableName' => $table->name,
        ':schemaName' => $table->schemaName,
    ]);
    $constraints = [];
    foreach ($command->queryAll() as $row) {
        if ($this->db->slavePdo->getAttribute(\PDO::ATTR_CASE) === \PDO::CASE_LOWER) {
            $row = array_change_key_case($row, CASE_UPPER);
        }
        if ($row['CONSTRAINT_TYPE'] === 'P') {
            $table->columns[$row['COLUMN_NAME']]->isPrimaryKey = true;
            $table->primaryKey[] = $row['COLUMN_NAME'];
            if (empty($table->sequenceName)) {
                $table->sequenceName = $this->getTableSequenceName($table->name);
            }
        }
        if ($row['CONSTRAINT_TYPE'] !== 'R') {
            // this condition is not checked in SQL WHERE because of an Oracle Bug:
            // see https://github.com/yiisoft/yii2/pull/8844
            continue;
        }
        $name = $row['CONSTRAINT_NAME'];
        if (!isset($constraints[$name])) {
            $constraints[$name] = [
                'tableName' => $row['TABLE_REF'],
                'columns' => [],
            ];
        }
        $constraints[$name]['columns'][$row['COLUMN_NAME']] = $row['COLUMN_REF'];
    }
    foreach ($constraints as $constraint) {
        $name = current(array_keys($constraint));
        $table->foreignKeys[$name] = array_merge([$constraint['tableName']], $constraint['columns']);
    }
}

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

デフォルトのスキーマを含む、データベース内のすべてのスキーマ名を返しますが、システムスキーマは除きます。

デフォルトの実装は例外をスローするだけなので、この機能をサポートするためには、子クラスでこのメソッドをオーバーライドする必要があります。

こちらも参照してください https://docs.oracle.com/cd/B28359_01/server.111/b28337/tdpsg_user_accounts.htm

protected array findSchemaNames ( )
return 配列

システムスキーマを除く、データベース内のすべてのスキーマ名。

throws yii\base\NotSupportedException

このメソッドがDBMSでサポートされていない場合。

                protected function findSchemaNames()
{
    static $sql = <<<'SQL'
CT "u"."USERNAME"
 "DBA_USERS" "u"
E "u"."DEFAULT_TABLESPACE" NOT IN ('SYSTEM', 'SYSAUX')
R BY "u"."USERNAME" ASC

    return $this->db->createCommand($sql)->queryColumn();
}

            
findTableNames() protected メソッド

データベース内のすべてのテーブル名を返します。

デフォルトの実装は例外をスローするだけなので、この機能をサポートするためには、子クラスでこのメソッドをオーバーライドする必要があります。

protected array findTableNames ( $schema '' )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマまたはデフォルトのスキーマを意味します。

return 配列

データベース内のすべてのテーブル名。名前にはスキーマ名のプレフィックスは含まれません。

throws yii\base\NotSupportedException

このメソッドがDBMSでサポートされていない場合。

                protected function findTableNames($schema = '')
{
    if ($schema === '') {
        $sql = <<<'SQL'
CT
TABLE_NAME
 USER_TABLES
N ALL
CT
VIEW_NAME AS TABLE_NAME
 USER_VIEWS
N ALL
CT
MVIEW_NAME AS TABLE_NAME
 USER_MVIEWS
R BY TABLE_NAME

        $command = $this->db->createCommand($sql);
    } else {
        $sql = <<<'SQL'
CT
OBJECT_NAME AS TABLE_NAME
 ALL_OBJECTS
E
OBJECT_TYPE IN ('TABLE', 'VIEW', 'MATERIALIZED VIEW')
AND OWNER = :schema
R BY OBJECT_NAME

        $command = $this->db->createCommand($sql, [':schema' => $schema]);
    }
    $rows = $command->queryAll();
    $names = [];
    foreach ($rows as $row) {
        if ($this->db->slavePdo->getAttribute(\PDO::ATTR_CASE) === \PDO::CASE_LOWER) {
            $row = array_change_key_case($row, CASE_UPPER);
        }
        $names[] = $row['TABLE_NAME'];
    }
    return $names;
}

            
findUniqueIndexes() public メソッド (バージョン2.0.4から利用可能)

指定されたテーブルのすべての一意インデックスを返します。

各配列要素は、次の構造になります:。

[
    'IndexName1' => ['col1' [, ...]],
    'IndexName2' => ['col2' [, ...]],
]
public array findUniqueIndexes ( $table )
$table yii\db\TableSchema

テーブルメタデータ

return 配列

指定されたテーブルのすべてのユニークインデックス。

                public function findUniqueIndexes($table)
{
    $query = <<<'SQL'
CT
DIC.INDEX_NAME,
DIC.COLUMN_NAME
 ALL_INDEXES DI
INNER JOIN ALL_IND_COLUMNS DIC ON DI.TABLE_NAME = DIC.TABLE_NAME AND DI.INDEX_NAME = DIC.INDEX_NAME
E
DI.UNIQUENESS = 'UNIQUE'
AND DIC.TABLE_OWNER = :schemaName
AND DIC.TABLE_NAME = :tableName
R BY DIC.TABLE_NAME, DIC.INDEX_NAME, DIC.COLUMN_POSITION

    $result = [];
    $command = $this->db->createCommand($query, [
        ':tableName' => $table->name,
        ':schemaName' => $table->schemaName,
    ]);
    foreach ($command->queryAll() as $row) {
        $result[$row['INDEX_NAME']][] = $row['COLUMN_NAME'];
    }
    return $result;
}

            
getCacheKey() protected メソッド

定義元: yii\db\Schema::getCacheKey()

指定されたテーブル名のキャッシュキーを返します。

protected mixed getCacheKey ( $name )
$name 文字列

テーブル名。

return mixed

キャッシュキー。

                protected function getCacheKey($name)
{
    return [
        __CLASS__,
        $this->db->dsn,
        $this->db->username,
        $this->getRawTableName($name),
    ];
}

            
getCacheTag() protected メソッド

定義元: yii\db\Schema::getCacheTag()

キャッシュタグ名を返します。

これにより、refresh()ですべてのキャッシュされたテーブルスキーマを無効化できます。

protected string getCacheTag ( )
return 文字列

キャッシュタグ名

                protected function getCacheTag()
{
    return md5(serialize([
        __CLASS__,
        $this->db->dsn,
        $this->db->username,
    ]));
}

            
getColumnPhpType() protected メソッド

定義元: yii\db\Schema::getColumnPhpType()

抽象DBタイプからPHPタイプを抽出します。

protected string getColumnPhpType ( $column )
$column yii\db\ColumnSchema

カラムスキーマ情報

return 文字列

PHPの型名

                protected function getColumnPhpType($column)
{
    static $typeMap = [
        // abstract type => php type
        self::TYPE_TINYINT => 'integer',
        self::TYPE_SMALLINT => 'integer',
        self::TYPE_INTEGER => 'integer',
        self::TYPE_BIGINT => 'integer',
        self::TYPE_BOOLEAN => 'boolean',
        self::TYPE_FLOAT => 'double',
        self::TYPE_DOUBLE => 'double',
        self::TYPE_BINARY => 'resource',
        self::TYPE_JSON => 'array',
    ];
    if (isset($typeMap[$column->type])) {
        if ($column->type === 'bigint') {
            return PHP_INT_SIZE === 8 && !$column->unsigned ? 'integer' : 'string';
        } elseif ($column->type === 'integer') {
            return PHP_INT_SIZE === 4 && $column->unsigned ? 'string' : 'integer';
        }
        return $typeMap[$column->type];
    }
    return 'string';
}

            
getLastInsertID() public メソッド

こちらも参照してください https://www.php.net/manual/en/function.PDO-lastInsertId.php -> Oracle はこれをサポートしていません。最後に挿入された行またはシーケンス値のIDを返します。

public string getLastInsertID ( $sequenceName '' )
$sequenceName 文字列

シーケンスオブジェクトの名前(一部のDBMSで必須)

return 文字列

最後に挿入された行の行 ID、またはシーケンスオブジェクトから取得された最後の値

throws yii\base\InvalidCallException

DB接続がアクティブでない場合

                public function getLastInsertID($sequenceName = '')
{
    if ($this->db->isActive) {
        // get the last insert id from the master connection
        $sequenceName = $this->quoteSimpleTableName($sequenceName);
        return $this->db->useMaster(function (Connection $db) use ($sequenceName) {
            return $db->createCommand("SELECT {$sequenceName}.CURRVAL FROM DUAL")->queryScalar();
        });
    } else {
        throw new InvalidCallException('DB Connection is not active.');
    }
}

            
getPdoType() public メソッド

定義場所: yii\db\Schema::getPdoType()

指定されたPHPデータ値のPDO型を決定します。

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

public integer getPdoType ( $data )
$data mixed

PDO型を判定する対象のデータ

return integer

PDO型

                public function getPdoType($data)
{
    static $typeMap = [
        // php type => PDO type
        'boolean' => \PDO::PARAM_BOOL,
        'integer' => \PDO::PARAM_INT,
        'string' => \PDO::PARAM_STR,
        'resource' => \PDO::PARAM_LOB,
        'NULL' => \PDO::PARAM_NULL,
    ];
    $type = gettype($data);
    return isset($typeMap[$type]) ? $typeMap[$type] : \PDO::PARAM_STR;
}

            
getQueryBuilder() public メソッド
public yii\db\QueryBuilder getQueryBuilder ( )
return yii\db\QueryBuilder

この接続のクエリビルダー。

                public function getQueryBuilder()
{
    if ($this->_builder === null) {
        $this->_builder = $this->createQueryBuilder();
    }
    return $this->_builder;
}

            
getRawTableName() public メソッド

定義場所: yii\db\Schema::getRawTableName()

指定されたテーブル名の実際の名前を返します。

このメソッドは、指定されたテーブル名から中括弧を削除し、パーセント文字 '%' を yii\db\Connection::$tablePrefix に置き換えます。

public string getRawTableName ( $name )
$name 文字列

変換対象のテーブル名

return 文字列

指定されたテーブル名の実際の名前

                public function getRawTableName($name)
{
    if (strpos($name, '{{') !== false) {
        $name = preg_replace('/\\{\\{(.*?)\\}\\}/', '\1', $name);
        return str_replace('%', $this->db->tablePrefix, $name);
    }
    return $name;
}

            
getSchemaChecks() public メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaChecks()

データベース内のすべてのテーブルのチェック制約を返します。

public \yii\db\CheckConstraint[][] getSchemaChecks ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return \yii\db\CheckConstraint[][]

データベース内のすべてのテーブルのチェック制約。yii\db\CheckConstraint またはその子クラスの配列の配列です。

                public function getSchemaChecks($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'checks', $refresh);
}

            
getSchemaDefaultValues() public メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaDefaultValues()

データベース内のすべてのテーブルのデフォルト値制約を返します。

public yii\db\DefaultValueConstraint[] getSchemaDefaultValues ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return yii\db\DefaultValueConstraint[]

データベース内のすべてのテーブルのデフォルト値制約。 各配列要素は yii\db\DefaultValueConstraint またはその子クラスの配列です。

                public function getSchemaDefaultValues($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'defaultValues', $refresh);
}

            
getSchemaForeignKeys() public メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaForeignKeys()

データベース内のすべてのテーブルの外部キーを返します。

public \yii\db\ForeignKeyConstraint[][] getSchemaForeignKeys ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return \yii\db\ForeignKeyConstraint[][]

データベース内のすべてのテーブルの外部キー。 各配列要素は yii\db\ForeignKeyConstraint またはその子クラスの配列です。

                public function getSchemaForeignKeys($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'foreignKeys', $refresh);
}

            
getSchemaIndexes() public メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaIndexes()

データベース内のすべてのテーブルのインデックスを返します。

public \yii\db\IndexConstraint[][] getSchemaIndexes ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return \yii\db\IndexConstraint[][]

データベース内のすべてのテーブルのインデックス。 各配列要素は yii\db\IndexConstraint またはその子クラスの配列です。

                public function getSchemaIndexes($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'indexes', $refresh);
}

            
getSchemaMetadata() protected abstract メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaMetadata()

指定されたスキーマ内のすべてのテーブルについて、指定されたタイプのメタデータを返します。

protected abstract array getSchemaMetadata ( $schema, $type, $refresh )
$schema 文字列

メタデータのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$type 文字列

メタデータ型。

$refresh boolean

利用可能な最新のテーブルメタデータをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return 配列

メタデータの配列。

                abstract protected function getSchemaMetadata($schema, $type, $refresh);

            
getSchemaNames() public メソッド (バージョン 2.0.4 以降で利用可能)

定義場所: yii\db\Schema::getSchemaNames()

システムスキーマを除く、データベース内のすべてのスキーマ名を返します。

public string[] getSchemaNames ( $refresh false )
$refresh boolean

利用可能な最新のスキーマ名をフェッチするかどうか。これが false の場合、以前にフェッチされたスキーマ名(利用可能な場合)が返されます。

return 文字列[]

システムスキーマを除く、データベース内のすべてのスキーマ名。

                public function getSchemaNames($refresh = false)
{
    if ($this->_schemaNames === null || $refresh) {
        $this->_schemaNames = $this->findSchemaNames();
    }
    return $this->_schemaNames;
}

            
getSchemaPrimaryKeys() public メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaPrimaryKeys()

データベース内のすべてのテーブルの主キーを返します。

public yii\db\Constraint[] getSchemaPrimaryKeys ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return yii\db\Constraint[]

データベース内のすべてのテーブルの主キー。各配列要素は、yii\db\Constraint またはその子クラスのインスタンスです。

                public function getSchemaPrimaryKeys($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'primaryKey', $refresh);
}

            
getSchemaUniques() public メソッド

定義場所: yii\db\ConstraintFinderTrait::getSchemaUniques()

データベース内のすべてのテーブルの一意制約を返します。

public \yii\db\Constraint[][] getSchemaUniques ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return \yii\db\Constraint[][]

データベース内のすべてのテーブルの一意制約。 各配列要素は yii\db\Constraint またはその子クラスの配列です。

                public function getSchemaUniques($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'uniques', $refresh);
}

            
getServerVersion() public メソッド (バージョン 2.0.14 から利用可能)

定義元: yii\db\Schema::getServerVersion()

\version_compare()で比較可能な文字列としてサーバーバージョンを返します。

public string getServerVersion ( )
return 文字列

文字列としてのサーバーバージョン。

                public function getServerVersion()
{
    if ($this->_serverVersion === null) {
        $this->_serverVersion = $this->db->getSlavePdo(true)->getAttribute(\PDO::ATTR_SERVER_VERSION);
    }
    return $this->_serverVersion;
}

            
getTableChecks() public メソッド

定義元: yii\db\ConstraintFinderTrait::getTableChecks()

名前付きテーブルのチェック制約情報を取得します。

public yii\db\CheckConstraint[] getTableChecks ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

キャッシュで見つかった場合でも情報をリロードするかどうか。

return yii\db\CheckConstraint[]

テーブルのチェック制約。

                public function getTableChecks($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'checks', $refresh);
}

            
getTableDefaultValues() public メソッド

定義元: yii\db\ConstraintFinderTrait::getTableDefaultValues()

名前付きテーブルのデフォルト値制約情報を取得します。

public yii\db\DefaultValueConstraint[] getTableDefaultValues ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

キャッシュで見つかった場合でも情報をリロードするかどうか。

return yii\db\DefaultValueConstraint[]

テーブルのデフォルト値制約。

                public function getTableDefaultValues($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'defaultValues', $refresh);
}

            
getTableForeignKeys() public メソッド

定義元: yii\db\ConstraintFinderTrait::getTableForeignKeys()

名前付きテーブルの外部キー情報を取得します。

public yii\db\ForeignKeyConstraint[] getTableForeignKeys ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

キャッシュで見つかった場合でも情報をリロードするかどうか。

return yii\db\ForeignKeyConstraint[]

テーブルの外部キー。

                public function getTableForeignKeys($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'foreignKeys', $refresh);
}

            
getTableIndexes() public メソッド

定義元: yii\db\ConstraintFinderTrait::getTableIndexes()

名前付きテーブルのインデックス情報を取得します。

public yii\db\IndexConstraint[] getTableIndexes ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

キャッシュで見つかった場合でも情報をリロードするかどうか。

return yii\db\IndexConstraint[]

テーブルのインデックス。

                public function getTableIndexes($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'indexes', $refresh);
}

            
getTableMetadata() protected abstract メソッド

定義元: yii\db\ConstraintFinderTrait::getTableMetadata()

指定されたテーブルについて、指定されたタイプのメタデータを返します。

protected abstract mixed getTableMetadata ( $name, $type, $refresh )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$type 文字列

メタデータ型。

$refresh boolean

テーブルメタデータがキャッシュで見つかった場合でもリロードするかどうか。

return mixed

メタデータ。

                abstract protected function getTableMetadata($name, $type, $refresh);

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

定義元: yii\db\Schema::getTableNameParts()

完全なテーブル名を部分に分割します

protected array getTableNameParts ( $name )
$name 文字列

                protected function getTableNameParts($name)
{
    return explode('.', $name);
}

            
getTableNames() public メソッド

定義元: yii\db\Schema::getTableNames()

データベース内のすべてのテーブル名を返します。

public string[] getTableNames ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。空でない場合、返されるテーブル名にはスキーマ名がプレフィックスとして付加されます。

$refresh boolean

最新のテーブル名を取得するかどうか。これが false の場合、以前に取得したテーブル名(利用可能な場合)が返されます。

return 文字列[]

データベース内のすべてのテーブル名。

                public function getTableNames($schema = '', $refresh = false)
{
    if (!isset($this->_tableNames[$schema]) || $refresh) {
        $this->_tableNames[$schema] = $this->findTableNames($schema);
    }
    return $this->_tableNames[$schema];
}

            
getTablePrimaryKey() public メソッド

定義元: yii\db\ConstraintFinderTrait::getTablePrimaryKey()

名前付きテーブルの主キーを取得します。

public yii\db\Constraint|null getTablePrimaryKey ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

キャッシュで見つかった場合でも情報をリロードするかどうか。

return yii\db\Constraint|null

テーブルの主キー。テーブルに主キーがない場合は null

                public function getTablePrimaryKey($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'primaryKey', $refresh);
}

            
getTableSchema() public メソッド

定義元: yii\db\Schema::getTableSchema()

名前付きテーブルのメタデータを取得します。

public yii\db\TableSchema|null getTableSchema ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

テーブルスキーマがキャッシュで見つかった場合でもリロードするかどうか。

return yii\db\TableSchema|null

テーブルのメタデータ。指定されたテーブルが存在しない場合は null

                public function getTableSchema($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'schema', $refresh);
}

            
getTableSchemas() public メソッド

定義元: yii\db\Schema::getTableSchemas()

データベース内のすべてのテーブルのメタデータを返します。

public yii\db\TableSchema[] getTableSchemas ( $schema '', $refresh false )
$schema 文字列

テーブルのスキーマ。デフォルトは空文字列で、現在のスキーマ名またはデフォルトのスキーマ名を意味します。

$refresh boolean

利用可能な最新のテーブルスキーマをフェッチするかどうか。これが false の場合、キャッシュされたデータが利用可能であれば返される場合があります。

return yii\db\TableSchema[]

データベース内のすべてのテーブルのメタデータ。各配列要素は、yii\db\TableSchema またはその子クラスのインスタンスです。

                public function getTableSchemas($schema = '', $refresh = false)
{
    return $this->getSchemaMetadata($schema, 'schema', $refresh);
}

            
getTableUniques() public メソッド

定義元: yii\db\ConstraintFinderTrait::getTableUniques()

名前付きテーブルの一意制約情報を取得します。

public yii\db\Constraint[] getTableUniques ( $name, $refresh false )
$name 文字列

テーブル名。テーブル名にはスキーマ名が含まれる場合があります。テーブル名を引用符で囲まないでください。

$refresh boolean

キャッシュで見つかった場合でも情報をリロードするかどうか。

return yii\db\Constraint[]

テーブルの一意制約。

                public function getTableUniques($name, $refresh = false)
{
    return $this->getTableMetadata($name, 'uniques', $refresh);
}

            
hasMethod() public メソッド

定義元: yii\base\BaseObject::hasMethod()

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

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

public boolean hasMethod ( $name )
$name 文字列

メソッド名

return 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 文字列

プロパティ名

$checkVars boolean

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

return boolean

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

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

            
init() public メソッド

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

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

public void init ( )

                public function init()
{
    parent::init();
    if ($this->defaultSchema === null) {
        $username = $this->db->username;
        if (empty($username)) {
            $username = isset($this->db->masters[0]['username']) ? $this->db->masters[0]['username'] : '';
        }
        $this->defaultSchema = strtoupper($username);
    }
}

            
insert() public メソッド (バージョン 2.0.4 から利用可能)

INSERTコマンドを実行し、主キーの値を返します。

public array|false insert ( $table, $columns )
$table 文字列

新しい行が挿入されるテーブル。

$columns 配列

テーブルに挿入される列データ(名前 => 値)。

return array|false

コマンドが失敗した場合は、主キーの値または false

                public function insert($table, $columns)
{
    $params = [];
    $returnParams = [];
    $sql = $this->db->getQueryBuilder()->insert($table, $columns, $params);
    $tableSchema = $this->getTableSchema($table);
    $returnColumns = $tableSchema->primaryKey;
    if (!empty($returnColumns)) {
        $columnSchemas = $tableSchema->columns;
        $returning = [];
        foreach ((array) $returnColumns as $name) {
            $phName = QueryBuilder::PARAM_PREFIX . (count($params) + count($returnParams));
            $returnParams[$phName] = [
                'column' => $name,
                'value' => '',
            ];
            if (!isset($columnSchemas[$name]) || $columnSchemas[$name]->phpType !== 'integer') {
                $returnParams[$phName]['dataType'] = \PDO::PARAM_STR;
            } else {
                $returnParams[$phName]['dataType'] = \PDO::PARAM_INT;
            }
            $returnParams[$phName]['size'] = isset($columnSchemas[$name]->size) ? $columnSchemas[$name]->size : -1;
            $returning[] = $this->quoteColumnName($name);
        }
        $sql .= ' RETURNING ' . implode(', ', $returning) . ' INTO ' . implode(', ', array_keys($returnParams));
    }
    $command = $this->db->createCommand($sql, $params);
    $command->prepare(false);
    foreach ($returnParams as $name => &$value) {
        $command->pdoStatement->bindParam($name, $value['value'], $value['dataType'], $value['size']);
    }
    if (!$command->execute()) {
        return false;
    }
    $result = [];
    foreach ($returnParams as $value) {
        $result[$value['column']] = $value['value'];
    }
    return $result;
}

            
isReadQuery() public メソッド

定義元: yii\db\Schema::isReadQuery()

SQLステートメントが読み取り目的かどうかを示す値を返します。

public boolean isReadQuery ( $sql )
$sql 文字列

SQLステートメント

return boolean

SQLステートメントが読み取り目的であるかどうか。

                public function isReadQuery($sql)
{
    $pattern = '/^\s*(SELECT|SHOW|DESCRIBE)\b/i';
    return preg_match($pattern, $sql) > 0;
}

            
loadTableChecks() protected メソッド

protected void loadTableChecks ( $tableName )
$tableName

                protected function loadTableChecks($tableName)
{
    return $this->loadTableConstraints($tableName, 'checks');
}

            
loadTableDefaultValues() protected メソッド

protected void loadTableDefaultValues ( $tableName )
$tableName
throws yii\base\NotSupportedException

このメソッドが呼び出された場合。

                protected function loadTableDefaultValues($tableName)
{
    throw new NotSupportedException('Oracle does not support default value constraints.');
}

            
loadTableForeignKeys() protected メソッド

protected void loadTableForeignKeys ( $tableName )
$tableName

                protected function loadTableForeignKeys($tableName)
{
    return $this->loadTableConstraints($tableName, 'foreignKeys');
}

            
loadTableIndexes() protected メソッド

protected void loadTableIndexes ( $tableName )
$tableName

                protected function loadTableIndexes($tableName)
{
    static $sql = <<<'SQL'
CT
/*+ PUSH_PRED("ui") PUSH_PRED("uicol") PUSH_PRED("uc") */
"ui"."INDEX_NAME" AS "name",
"uicol"."COLUMN_NAME" AS "column_name",
CASE "ui"."UNIQUENESS" WHEN 'UNIQUE' THEN 1 ELSE 0 END AS "index_is_unique",
CASE WHEN "uc"."CONSTRAINT_NAME" IS NOT NULL THEN 1 ELSE 0 END AS "index_is_primary"
 "SYS"."USER_INDEXES" "ui"
 JOIN "SYS"."USER_IND_COLUMNS" "uicol"
ON "uicol"."INDEX_NAME" = "ui"."INDEX_NAME"
 JOIN "SYS"."USER_CONSTRAINTS" "uc"
ON "uc"."OWNER" = "ui"."TABLE_OWNER" AND "uc"."CONSTRAINT_NAME" = "ui"."INDEX_NAME" AND "uc"."CONSTRAINT_TYPE" = 'P'
E "ui"."TABLE_OWNER" = :schemaName AND "ui"."TABLE_NAME" = :tableName
R BY "uicol"."COLUMN_POSITION" ASC

    $resolvedName = $this->resolveTableName($tableName);
    $indexes = $this->db->createCommand($sql, [
        ':schemaName' => $resolvedName->schemaName,
        ':tableName' => $resolvedName->name,
    ])->queryAll();
    $indexes = $this->normalizePdoRowKeyCase($indexes, true);
    $indexes = ArrayHelper::index($indexes, null, 'name');
    $result = [];
    foreach ($indexes as $name => $index) {
        $result[] = new IndexConstraint([
            'isPrimary' => (bool) $index[0]['index_is_primary'],
            'isUnique' => (bool) $index[0]['index_is_unique'],
            'name' => $name,
            'columnNames' => ArrayHelper::getColumn($index, 'column_name'),
        ]);
    }
    return $result;
}

            
loadTablePrimaryKey() protected メソッド

protected void loadTablePrimaryKey ( $tableName )
$tableName

                protected function loadTablePrimaryKey($tableName)
{
    return $this->loadTableConstraints($tableName, 'primaryKey');
}

            
loadTableSchema() protected メソッド

指定されたテーブルのメタデータをロードします。

protected yii\db\TableSchema|null loadTableSchema ( $name )
$name 文字列

テーブル名

return yii\db\TableSchema|null

DBMS依存のテーブルメタデータ。テーブルが存在しない場合はnull

                protected function loadTableSchema($name)
{
    $table = new TableSchema();
    $this->resolveTableNames($table, $name);
    if ($this->findColumns($table)) {
        $this->findConstraints($table);
        return $table;
    }
    return null;
}

            
loadTableUniques() protected メソッド

protected void loadTableUniques ( $tableName )
$tableName

                protected function loadTableUniques($tableName)
{
    return $this->loadTableConstraints($tableName, 'uniques');
}

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

定義元: yii\db\Schema::normalizePdoRowKeyCase()

PDOのキーが大文字に設定されている場合、行の配列キーのケースを小文字に変更します。

protected array normalizePdoRowKeyCase ( array $row, $multiple )
$row 配列

行の配列、または行の配列の配列。

$multiple boolean

複数の行が渡されたか、単一行が渡されたか。

return 配列

正規化された行または行の配列。

                protected function normalizePdoRowKeyCase(array $row, $multiple)
{
    if ($this->db->getSlavePdo(true)->getAttribute(\PDO::ATTR_CASE) !== \PDO::CASE_UPPER) {
        return $row;
    }
    if ($multiple) {
        return array_map(function (array $row) {
            return array_change_key_case($row, CASE_LOWER);
        }, $row);
    }
    return array_change_key_case($row, CASE_LOWER);
}

            
quoteColumnName() public メソッド

定義元: yii\db\Schema::quoteColumnName()

クエリで使用するために、カラム名を引用符で囲みます。

カラム名にプレフィックスが含まれている場合、プレフィックスも適切にクォートされます。カラム名がすでにクォートされているか、'('、'[['、'{{'が含まれている場合、このメソッドは何もしません。

関連項目 quoteSimpleColumnName()

public string quoteColumnName ( $name )
$name 文字列

カラム名

return 文字列

適切にクォートされたカラム名

                public function quoteColumnName($name)
{
    if (strpos($name, '(') !== false || strpos($name, '[[') !== false) {
        return $name;
    }
    if (($pos = strrpos($name, '.')) !== false) {
        $prefix = $this->quoteTableName(substr($name, 0, $pos)) . '.';
        $name = substr($name, $pos + 1);
    } else {
        $prefix = '';
    }
    if (strpos($name, '{{') !== false) {
        return $name;
    }
    return $prefix . $this->quoteSimpleColumnName($name);
}

            
quoteSimpleColumnName() public メソッド

定義元: yii\db\Schema::quoteSimpleColumnName()

クエリで使用するために、単純なカラム名を引用符で囲みます。

単純なカラム名には、プレフィックスなしのカラム名のみが含まれる必要があります。カラム名が既にクォートされているか、アスタリスク文字'*'である場合、このメソッドは何もしません。

public string quoteSimpleColumnName ( $name )
$name 文字列

カラム名

return 文字列

適切にクォートされたカラム名

                public function quoteSimpleColumnName($name)
{
    if (is_string($this->columnQuoteCharacter)) {
        $startingCharacter = $endingCharacter = $this->columnQuoteCharacter;
    } else {
        list($startingCharacter, $endingCharacter) = $this->columnQuoteCharacter;
    }
    return $name === '*' || strpos($name, $startingCharacter) !== false ? $name : $startingCharacter . $name . $endingCharacter;
}

            
quoteSimpleTableName() public メソッド

クエリで使用するために、単純なテーブル名を引用符で囲みます。

単純なテーブル名には、スキーマプレフィックスなしのテーブル名のみが含まれる必要があります。テーブル名が既にクォートされている場合、このメソッドは何もしません。

public string quoteSimpleTableName ( $name )
$name 文字列

テーブル名

return 文字列

適切にクォートされたテーブル名

                public function quoteSimpleTableName($name)
{
    return strpos($name, '"') !== false ? $name : '"' . $name . '"';
}

            
quoteTableName() public メソッド

定義元: yii\db\Schema::quoteTableName()

クエリで使用するために、テーブル名を引用符で囲みます。

テーブル名にスキーマプレフィックスが含まれている場合、プレフィックスも適切にクォートされます。テーブル名が既にクォートされているか、'('または'{{'が含まれている場合、このメソッドは何もしません。

関連項目 quoteSimpleTableName()

public string quoteTableName ( $name )
$name 文字列

テーブル名

return 文字列

適切にクォートされたテーブル名

                public function quoteTableName($name)
{
    if (strncmp($name, '(', 1) === 0 && strpos($name, ')') === strlen($name) - 1) {
        return $name;
    }
    if (strpos($name, '{{') !== false) {
        return $name;
    }
    if (strpos($name, '.') === false) {
        return $this->quoteSimpleTableName($name);
    }
    $parts = $this->getTableNameParts($name);
    foreach ($parts as $i => $part) {
        $parts[$i] = $this->quoteSimpleTableName($part);
    }
    return implode('.', $parts);
}

            
quoteValue() public メソッド

定義元: yii\db\Schema::quoteValue()

クエリで使用するために、文字列値を引用符で囲みます。

パラメータが文字列でない場合は、変更せずに返されます。

関連項目 https://www.php.net/manual/en/function.PDO-quote.php

public string quoteValue ( $str )
$str 文字列

クォートされる文字列

return 文字列

適切にクォートされた文字列

                public function quoteValue($str)
{
    if (!is_string($str)) {
        return $str;
    }
    if (mb_stripos((string)$this->db->dsn, 'odbc:') === false && ($value = $this->db->getSlavePdo(true)->quote($str)) !== false) {
        return $value;
    }
    // the driver doesn't support quote (e.g. oci)
    return "'" . addcslashes(str_replace("'", "''", $str), "\000\n\r\\\032") . "'";
}

            
refresh() public メソッド

定義元: yii\db\Schema::refresh()

スキーマをリフレッシュします。

このメソッドは、キャッシュされたすべてのテーブルスキーマをクリーンアップし、データベーススキーマの変更を反映するために後で再作成できるようにします。

public void refresh ( )

                public function refresh()
{
    /* @var $cache CacheInterface */
    $cache = is_string($this->db->schemaCache) ? Yii::$app->get($this->db->schemaCache, false) : $this->db->schemaCache;
    if ($this->db->enableSchemaCache && $cache instanceof CacheInterface) {
        TagDependency::invalidate($cache, $this->getCacheTag());
    }
    $this->_tableNames = [];
    $this->_tableMetadata = [];
}

            
refreshTableSchema() public メソッド (バージョン 2.0.6 から利用可能)

定義元: yii\db\Schema::refreshTableSchema()

特定のテーブルスキーマをリフレッシュします。

このメソッドは、キャッシュされたテーブルスキーマをクリーンアップし、データベーススキーマの変更を反映するために後で再作成できるようにします。

public void refreshTableSchema ( $name )
$name 文字列

テーブル名。

                public function refreshTableSchema($name)
{
    $rawName = $this->getRawTableName($name);
    unset($this->_tableMetadata[$rawName]);
    $this->_tableNames = [];
    /* @var $cache CacheInterface */
    $cache = is_string($this->db->schemaCache) ? Yii::$app->get($this->db->schemaCache, false) : $this->db->schemaCache;
    if ($this->db->enableSchemaCache && $cache instanceof CacheInterface) {
        $cache->delete($this->getCacheKey($rawName));
    }
}

            
releaseSavepoint() public メソッド

既存のセーブポイントを解放します。

public void releaseSavepoint ( $name )
$name 文字列

セーブポイント名

                public function releaseSavepoint($name)
{
    // does nothing as Oracle does not support this
}

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

テーブル名とスキーマ名(存在する場合)を解決します。

protected yii\db\TableSchema resolveTableName ( $name )
$name 文字列

テーブル名

return yii\db\TableSchema

解決されたテーブル、スキーマなどの名前を持つyii\db\TableSchema

throws yii\base\NotSupportedException

このメソッドがDBMSでサポートされていない場合。

                protected function resolveTableName($name)
{
    $resolvedName = new TableSchema();
    $parts = explode('.', str_replace('"', '', $name));
    if (isset($parts[1])) {
        $resolvedName->schemaName = $parts[0];
        $resolvedName->name = $parts[1];
    } else {
        $resolvedName->schemaName = $this->defaultSchema;
        $resolvedName->name = $name;
    }
    $resolvedName->fullName = ($resolvedName->schemaName !== $this->defaultSchema ? $resolvedName->schemaName . '.' : '') . $resolvedName->name;
    return $resolvedName;
}

            
resolveTableNames() protected メソッド

テーブル名とスキーマ名(存在する場合)を解決します。

protected void resolveTableNames ( $table, $name )
$table yii\db\TableSchema

テーブルメタデータオブジェクト

$name 文字列

テーブル名

                protected function resolveTableNames($table, $name)
{
    $parts = explode('.', str_replace('"', '', $name));
    if (isset($parts[1])) {
        $table->schemaName = $parts[0];
        $table->name = $parts[1];
    } else {
        $table->schemaName = $this->defaultSchema;
        $table->name = $name;
    }
    $table->fullName = $table->schemaName !== $this->defaultSchema ? $table->schemaName . '.' . $table->name : $table->name;
}

            
rollBackSavepoint() public メソッド

定義元: yii\db\Schema::rollBackSavepoint()

以前に作成されたセーブポイントまでロールバックします。

public void rollBackSavepoint ( $name )
$name 文字列

セーブポイント名

                public function rollBackSavepoint($name)
{
    $this->db->createCommand("ROLLBACK TO SAVEPOINT $name")->execute();
}

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

定義元: yii\db\Schema::setTableMetadata()

指定されたテーブルについて、指定されたタイプのメタデータを設定します。

protected void setTableMetadata ( $name, $type, $data )
$name 文字列

テーブル名。

$type 文字列

メタデータ型。

$data mixed

メタデータ。

                protected function setTableMetadata($name, $type, $data)
{
    $this->_tableMetadata[$this->getRawTableName($name)][$type] = $data;
}

            
setTransactionIsolationLevel() public メソッド

定義元: yii\db\Schema::setTransactionIsolationLevel()

現在のトランザクションの分離レベルを設定します。

参照: https://en.wikipedia.org/wiki/Isolation_(database_systems)#Isolation_levels.

public void setTransactionIsolationLevel ( $level )
$level 文字列

このトランザクションで使用するトランザクション分離レベル。 yii\db\Transaction::READ_UNCOMMITTED, yii\db\Transaction::READ_COMMITTED, yii\db\Transaction::REPEATABLE_READ, および yii\db\Transaction::SERIALIZABLE のいずれか、またはSET TRANSACTION ISOLATION LEVEL の後に使用される DBMS 固有の構文を含む文字列を指定できます。

                public function setTransactionIsolationLevel($level)
{
    $this->db->createCommand("SET TRANSACTION ISOLATION LEVEL $level")->execute();
}

            
supportsSavepoint() public メソッド
public boolean supportsSavepoint ( )
return boolean

このDBMSがセーブポイントをサポートしているかどうか。

                public function supportsSavepoint()
{
    return $this->db->enableSavepoint;
}

            
unquoteSimpleColumnName() public メソッド (バージョン 2.0.14 から利用可能)

定義元: yii\db\Schema::unquoteSimpleColumnName()

単純なカラム名の引用符を外します。

シンプルなカラム名は、プレフィックスなしのカラム名のみを含む必要があります。カラム名がクォートされていない場合、またはアスタリスク文字 '*' の場合、このメソッドは何もしません。

public string unquoteSimpleColumnName ( $name )
$name 文字列

カラム名。

return 文字列

クォートされていないカラム名。

                public function unquoteSimpleColumnName($name)
{
    if (is_string($this->columnQuoteCharacter)) {
        $startingCharacter = $this->columnQuoteCharacter;
    } else {
        $startingCharacter = $this->columnQuoteCharacter[0];
    }
    return strpos($name, $startingCharacter) === false ? $name : substr($name, 1, -1);
}

            
unquoteSimpleTableName() public メソッド (バージョン 2.0.14 から利用可能)

定義元: yii\db\Schema::unquoteSimpleTableName()

単純なテーブル名の引用符を外します。

シンプルなテーブル名は、スキーマプレフィックスなしのテーブル名のみを含む必要があります。テーブル名がクォートされていない場合、このメソッドは何もしません。

public string unquoteSimpleTableName ( $name )
$name 文字列

テーブル名。

return 文字列

クォートされていないテーブル名。

                public function unquoteSimpleTableName($name)
{
    if (is_string($this->tableQuoteCharacter)) {
        $startingCharacter = $this->tableQuoteCharacter;
    } else {
        $startingCharacter = $this->tableQuoteCharacter[0];
    }
    return strpos($name, $startingCharacter) === false ? $name : substr($name, 1, -1);
}