a-blog cms PHP API Reference

Schema
in package

Table of Contents

Properties

$currentTableInfo  : array<string|int, mixed>
現在のテーブル情報
$dbIndex  : mixed
現在のインデックス情報
$define  : array<string|int, mixed>
新しいデータベース定義
$indexDefine  : array<string|int, mixed>
新しいデータベースのインデックス情報
$schema  : array<string|int, mixed>
現在のテーブル定義
$dbInfo  : DatabaseInfo
$dsn  : Dsn
DB接続情報
$engineDefine  : mixed
新しいデータベースのEngine変更情報
$renameDefine  : array<string|int, mixed>
新しいデータベースのリネーム情報

Methods

__construct()  : mixed
Schema constructor.
buildAddIndexQueries()  : array<string|int, string>
インデックス定義から ALTER 文を組み立てる
checkAlterSystemTablePermission()  : bool
system table を更新できるか確認
clearIndex()  : mixed
指定されたテーブルのインデックスをすべて削除する
compareColumns()  : mixed
カラム定義の違いを走査
compareIndex()  : mixed
インデックス定義の違いを走査
compareTables()  : array<string|int, mixed>
現在のDBと定義を比較して,差分のテーブル名を配列で返す
createTables()  : mixed
テーブルを作成する
dropColumns()  : void
指定カラムを削除する。
dropTable()  : void
テーブルを削除する (存在しない場合はノーオペ)
existsDefinedTable()  : bool
listUp()  : array<string|int, mixed>
配列のキーを返す・空配列は除かれる
makeIndex()  : mixed
インデックスを作成する
resolveColumns()  : mixed
compareColumns走査済みのすべてのカラムを追加・変更する
resolveEngines()  : mixed
テーブルのEngineを解決する
resolveRenames()  : mixed
名前に変更のあったフィールドを解決する
setSchema()  : mixed
現 DB のスナップショットを再ロードする。
unusedColumns()  : mixed
定義外の未使用カラムを走査
getDatabaseDefinitionCurrent()  : array<string|int, mixed>
現在のデータベース定義を取得
getDatabaseIndexCurrent()  : array<string|int, mixed>
現在のデータベースインデックス定義を取得
reloadSchema()  : mixed
reload schema
safeLogWarning()  : void
ログ出力を防御的に行う

Properties

$currentTableInfo

現在のテーブル情報

public array<string|int, mixed> $currentTableInfo

$dbIndex

現在のインデックス情報

public mixed $dbIndex

$define

新しいデータベース定義

public array<string|int, mixed> $define

$indexDefine

新しいデータベースのインデックス情報

public array<string|int, mixed> $indexDefine

$schema

現在のテーブル定義

public array<string|int, mixed> $schema

$dsn

DB接続情報

protected Dsn $dsn

$engineDefine

新しいデータベースのEngine変更情報

protected mixed $engineDefine

$renameDefine

新しいデータベースのリネーム情報

protected array<string|int, mixed> $renameDefine

Methods

__construct()

Schema constructor.

public __construct(Dsn $dsn[, SchemaDefinitions|null $definitions = null ]) : mixed
Parameters
$dsn : Dsn
$definitions : SchemaDefinitions|null = null

yaml 由来のスキーマ定義群。 省略時は本体 + 拡張の Config 経由ロード (= SchemaDefinitions::fromConfig()) を使う。 拡張アプリ単位のスキーマ管理では SchemaDefinitions::fromYaml($dir) を渡す。

buildAddIndexQueries()

インデックス定義から ALTER 文を組み立てる

public static buildAddIndexQueries(string $table, array<string|int, mixed> $definitions) : array<string|int, string>

PRIMARY KEY 定義も対象に含める。setup のインデックス修復などで PRIMARY KEY が失われた環境を、アップデート時に復元できるようにするため。 呼び出し側(compareIndex)が既存の PRIMARY KEY を持つテーブルを除外している前提。

Parameters
$table : string
$definitions : array<string|int, mixed>
Return values
array<string|int, string>

checkAlterSystemTablePermission()

system table を更新できるか確認

public checkAlterSystemTablePermission() : bool
Return values
bool

clearIndex()

指定されたテーブルのインデックスをすべて削除する

public clearIndex(string $table) : mixed
Parameters
$table : string

compareColumns()

カラム定義の違いを走査

public compareColumns(string $table) : mixed
Parameters
$table : string

compareIndex()

インデックス定義の違いを走査

public compareIndex(string $table) : mixed
Parameters
$table : string

compareTables()

現在のDBと定義を比較して,差分のテーブル名を配列で返す

public compareTables() : array<string|int, mixed>
Return values
array<string|int, mixed>

createTables()

テーブルを作成する

public createTables(array<string|int, string> $tables[, array<string|int, mixed>|null $idx = null ]) : mixed
Parameters
$tables : array<string|int, string>
$idx : array<string|int, mixed>|null = null

dropColumns()

指定カラムを削除する。

public dropColumns(string $table[, array<int, string> $columns = [] ]) : void

指定カラム数が $this->schema[$table] のカラム数と一致する場合は、 テーブル全体を DROP する (旧 setup/lib/schema.php の同名メソッドと等価)。

Parameters
$table : string
$columns : array<int, string> = []

dropTable()

テーブルを削除する (存在しない場合はノーオペ)

public dropTable(string $table) : void
Parameters
$table : string

existsDefinedTable()

public existsDefinedTable() : bool
Return values
bool

listUp()

配列のキーを返す・空配列は除かれる

public listUp(mixed $ary) : array<string|int, mixed>
Parameters
$ary : mixed
Return values
array<string|int, mixed>

makeIndex()

インデックスを作成する

public makeIndex(mixed $table, mixed $res) : mixed
Parameters
$table : mixed
$res : mixed

resolveColumns()

compareColumns走査済みのすべてのカラムを追加・変更する

public resolveColumns(string $table, array<string|int, mixed> $add, array<string|int, mixed> $change) : mixed
Parameters
$table : string
$add : array<string|int, mixed>
$change : array<string|int, mixed>

resolveEngines()

テーブルのEngineを解決する

public resolveEngines() : mixed

resolveRenames()

名前に変更のあったフィールドを解決する

public resolveRenames() : mixed

setSchema()

現 DB のスナップショットを再ロードする。

public setSchema() : mixed

yaml 由来の定義 (define / index / rename / engine) は constructor で確定させており、 このメソッドでは現 DB のテーブル構成 ($this->schema) と既存インデックス ($this->dbIndex) のみを再取得する。

unusedColumns()

定義外の未使用カラムを走査

public unusedColumns(mixed $table) : mixed
Parameters
$table : mixed

getDatabaseDefinitionCurrent()

現在のデータベース定義を取得

protected getDatabaseDefinitionCurrent() : array<string|int, mixed>
Return values
array<string|int, mixed>

getDatabaseIndexCurrent()

現在のデータベースインデックス定義を取得

protected getDatabaseIndexCurrent() : array<string|int, mixed>
Return values
array<string|int, mixed>

reloadSchema()

reload schema

protected reloadSchema() : mixed

safeLogWarning()

ログ出力を防御的に行う

protected safeLogWarning(string $message[, array<string|int, mixed> $context = [] ]) : void

アップデート処理はアップグレード元(旧バージョン)のアプリ文脈で実行されることがあり、 後発で追加された Logger サービスがコンテナに未登録の場合がある。ログ出力の失敗が アップグレード自体を止めないよう、クラス存在確認と例外捕捉で保護する。

Parameters
$message : string
$context : array<string|int, mixed> = []

        
On this page

Search results