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 配列に変換する