a-blog cms PHP API Reference

Rule
in package

このクラスは、バージョンアップ時に「特別な更新処理」を行うためのクラスです。

注意点:

  • アップデート処理の実行時には、新しいバージョンで追加されたクラスやメソッドは、まだ読み込まれていないため利用できません。
  • そのため、このクラスでは 「オンラインアップデート機能」が追加された v2.8.0 から利用できる機能でのみ実装してください。

例 DB::next() は利用できません。v3.2.0 で追加されたため。

Table of Contents

Properties

$fromVersion  : string
$toVersion  : string

Methods

pickLatestLastAccessRows()  : array<int, array<string, mixed>>
last_access の行一覧からユーザーごとに最新の1行を選ぶ
update()  : mixed
例外的なアップデートを実行
addGroupConfig()  : mixed
フィールドグループのコンフィグを追加
addNavigationPublish()  : mixed
navigation_publish = on を追加
convertPrimaryKeyToSingleId()  : void
指定テーブルの PRIMARY KEY を ID カラム単体へ張り替える(冪等・重複ガード付き)。
filterArray()  : array<string|int, mixed>
配列を再帰的にフィルタリング
fixLastAccessPrimaryKey()  : void
last_access テーブルの PRIMARY KEY を復元
safeLog()  : void
Logger ファサードを防御的に呼び出す。
update140()  : mixed
v1.4.0以前からのアップデート コンフィグ画面用のconfigフィールドグループを追加
update142()  : mixed
v1.4.2以前からのアップデート Api_Yahoo_* の名前変更対応
update150()  : mixed
v1.5.0以前からのアップデート navigation_publish = on を追加
update2100()  : mixed
v2.10.0以前からのアップデート workflowを
update3150()  : void
v3.1.50以前からのアップデート フィールドにタイプのカラムを追加 メディアフィールドの検索用インデックスのため
update320()  : void
v3.2.0以前からのアップデート - カスタムユニットのフィールドデータをcolumnテーブルからフィールドテーブルに移動 - column_align カラムに存在する非表示を acms_column, acms_column_rev テーブルの column_status カラムのデータとして扱えるようにアップデート時にデータコンバートを行う
update321()  : void
v3.1.55以前からのアップデート
update3218()  : void
v3.2.18以前からのアップデート エントリーインポートのバグにより壊れたカスタムユニットのメディアフィールドの値を正しい値に修正する
update3225()  : void
v3.2.25以前からのアップデート
updateCustomUnitData()  : void
v3.2.0以前からのアップデート カスタムユニットのフィールドデータをcolumnテーブルからフィールドテーブルに移動
updateUnitAlignToStatus()  : void
v3.2.0以前からのアップデート column_align カラムに存在する非表示を acms_column, acms_column_rev テーブルの column_status カラムのデータとして扱えるようにアップデート時にデータコンバートを行う 配置は center に変更する

Properties

$fromVersion

protected string $fromVersion

$toVersion

protected string $toVersion

Methods

pickLatestLastAccessRows()

last_access の行一覧からユーザーごとに最新の1行を選ぶ

public static pickLatestLastAccessRows(array<int, array<string, mixed>> $rows) : array<int, array<string, mixed>>
Parameters
$rows : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>

update()

例外的なアップデートを実行

public update(string $fromVersion, string $toVersion) : mixed
Parameters
$fromVersion : string
$toVersion : string

addGroupConfig()

フィールドグループのコンフィグを追加

protected addGroupConfig(string $group, array<string|int, mixed> $vals, null|int $bid[, null|int $rid = null ][, null|int $mid = null ]) : mixed
Parameters
$group : string
$vals : array<string|int, mixed>
$bid : null|int
$rid : null|int = null
$mid : null|int = null

addNavigationPublish()

navigation_publish = on を追加

protected addNavigationPublish(int $bid[, null|int $rid = null ][, null|int $mid = null ]) : mixed
Parameters
$bid : int
$rid : null|int = null
$mid : null|int = null

convertPrimaryKeyToSingleId()

指定テーブルの PRIMARY KEY を ID カラム単体へ張り替える(冪等・重複ガード付き)。

private convertPrimaryKeyToSingleId(PrimaryKey $primaryKey, string $table, string $idColumn) : void

すでに ID カラム単体になっていれば何もしない。重複 ID が残っているテーブルは、 PRIMARY KEY 追加が失敗してアップグレードを止めてしまわないよう、スキップして警告ログを残す。

Parameters
$primaryKey : PrimaryKey
$table : string

プレフィックス無しのテーブル名

$idColumn : string

ID カラム名

filterArray()

配列を再帰的にフィルタリング

private filterArray(array<string|int, mixed> $data) : array<string|int, mixed>
Parameters
$data : array<string|int, mixed>
Return values
array<string|int, mixed>

fixLastAccessPrimaryKey()

last_access テーブルの PRIMARY KEY を復元

private fixLastAccessPrimaryKey() : void

last_access への書き込みは INSERT ... ON DUPLICATE KEY UPDATE で行われており、 「1ユーザー1行」の維持を PRIMARY KEY (last_access_uid) に依存している。 PRIMARY KEY を失った環境では POST リクエストごとに同一ユーザーの行が増え続け、 last_access を結合するユーザー一覧に同一ユーザーが重複表示される。 重複行をユーザーごとに最新の1行へ整理したうえで PRIMARY KEY を張り直す。

safeLog()

Logger ファサードを防御的に呼び出す。

private safeLog(string $level, string $message[, array<string, mixed> $context = [] ]) : void

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

Parameters
$level : string

'warning' または 'info'

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

update140()

v1.4.0以前からのアップデート コンフィグ画面用のconfigフィールドグループを追加

private update140() : mixed

update142()

v1.4.2以前からのアップデート Api_Yahoo_* の名前変更対応

private update142() : mixed

update150()

v1.5.0以前からのアップデート navigation_publish = on を追加

private update150() : mixed

update2100()

v2.10.0以前からのアップデート workflowを

private update2100() : mixed

update3150()

v3.1.50以前からのアップデート フィールドにタイプのカラムを追加 メディアフィールドの検索用インデックスのため

private update3150() : void

update320()

v3.2.0以前からのアップデート - カスタムユニットのフィールドデータをcolumnテーブルからフィールドテーブルに移動 - column_align カラムに存在する非表示を acms_column, acms_column_rev テーブルの column_status カラムのデータとして扱えるようにアップデート時にデータコンバートを行う

private update320() : void

update321()

v3.1.55以前からのアップデート

private update321() : void

監査ログの秘匿化項目をマスク化

update3218()

v3.2.18以前からのアップデート エントリーインポートのバグにより壊れたカスタムユニットのメディアフィールドの値を正しい値に修正する

private update3218() : void

update3225()

v3.2.25以前からのアップデート

private update3225() : void

シーケンスで採番するテーブルのうち、ID カラム単体の一意制約を持たないテーブルの PRIMARY KEY を「ID カラム単体」へ張り替える。これにより、移設時のシーケンス未同期などで 同一 ID が重複採番される事故を DB レベルで防止する。

旧来の複合キーは db.index.yaml の定義に従って別インデックスとして自動追加されるため、 本処理は updateIndexs() では実行できない PRIMARY KEY の張り替えのみを担当する。 schedule は 1 件が年月ごとに複数行を持つ仕様のため対象外。

updateCustomUnitData()

v3.2.0以前からのアップデート カスタムユニットのフィールドデータをcolumnテーブルからフィールドテーブルに移動

private updateCustomUnitData() : void

updateUnitAlignToStatus()

v3.2.0以前からのアップデート column_align カラムに存在する非表示を acms_column, acms_column_rev テーブルの column_status カラムのデータとして扱えるようにアップデート時にデータコンバートを行う 配置は center に変更する

private updateUnitAlignToStatus() : void

        
On this page

Search results