NaifyDb\Schema\TableSchema クラス PHP 8.0+ 8.1 → readonly
テーブルのスキーマ情報を保持する
Connection::describeTable() の戻り値。カラム情報の集合を提供する。
使用例
$schema = $connection->describeTable('users');
if ($schema->hasColumn('email')) {
$column = $schema->getColumn('email');
}
$primaryKeys = $schema->getPrimaryKeyColumns();
$allColumns = $schema->getColumnNames();
設計意図
readonly 化時はローカル配列でカラム一覧を完成させ、columns へ一度だけ代入する。
プロパティ
| 名前 | 型 | 説明 |
|---|---|---|
private
$columns
|
array |
カラム名 => ColumnInfo |
private
$tableName
|
string |
テーブル名 |
メソッド
| メソッド | 説明 |
|---|---|
public
__construct(string $tableName, array $columns):
|
テーブルスキーマを生成する
readonly 化時はローカル配列でカラム一覧を完成させ、columns へ一度だけ代入する。
|
public
getTableName(): string
|
対象テーブル名を返す 8.4 → property hooks |
public
getColumns(): array
|
全カラム情報を返す 8.4 → property hooks |
public
hasColumn(string $name): bool
|
カラムが存在するか
Connection::describeTable()で取得したカラム名とのキー照合を行う。 SQL式・別名・テーブル修飾を解析せず、エスケープや使用許可の判定も行わない。 |
public
getColumn(string $name): ?ColumnInfo
|
カラム情報を取得する |
public
getColumnNames(): array
|
カラム名の一覧を返す |
public
getPrimaryKeyColumns(): array
|
プライマリキーのカラム名を返す |
public
toArray(): array
|
配列に変換する |