basercms-theme-4-to-5-upgrade
baserCMS テーマの 4 → 5 移行パターン集
本スキルの対象はテーマの baserCMS 4 → 5 移行。テーマは templates/layout・templates/element・templates/Blog・templates/Pages・templates/Mail などのテンプレートが主体で、Controller/Table を持たず、少数のフロント表示ロジック用 Helper(src/View/Helper/*.php)を伴う構成を指す。BcAddonMigrator でテーマを5系のテーマプラグインへ変換した後に必要となる手作業の書き換えパターン(TH-系)と、フロント表示エラーのうちテンプレート・テーマ描画系の実例パターン(F-系)を収録する。
本スキルが扱うのは4系テーマコードの検出と変換である。5系テーマの正しい書き方の正本は basercms5-theme-development(プラグイン内部コードは basercms5-plugin-development)であり、変換先の仕様(テーマプラグインの構造・ビュー変数の作法・ヘルパ・アセットとURL・ウィジェット・メールフォーム/ブログテンプレート)に迷ったらそちらを参照する。以下の各節は「4系イディオムの検出(症状・grep パターン)→ 変換の要点 → 正本スキルの該当節」の形で読む。
テーマ変換の全体手順(テーマの zip 化 → BcAddonMigrator での変換 → plugins/ への配置 → 横断5系化 → sites テーブルの theme への適用)は basercms4-to-5-upgrade スキルの該当節(テーマの変換/移行の標準フロー)を参照すること。本スキルはその工程の中から呼ばれ、変換後のテンプレート・Helper を実際に描画が通る状態へ直すための具体策を提供する。
横断対応の原則(1箇所直したら同じパターンを grep -rn で全件洗い出し → 機械的に一意な変換は一括適用 → 変更ファイルを全て php -l で検証)と、C-0(機械一括変換カタログ)・イベントリスナー/Helper の書き換えパターンは basercms-plugin-4-to-5-upgrade スキルを参照。テーマにプラグイン相当の内部コード(Controller/Table/管理画面)が含まれる場合も同スキルを併用する。
テーマ(Theme)固有の移行パターン(T-/C-系との違い)
テーマは Controller/Table を持たない(プラグインと構造が根本的に異なる)ため、basercms-plugin-4-to-5-upgrade スキルの T-(Table/ORM)・C-(Controller/画面)カタログは基本的に適用外。テーマの主体は
templates/layouttemplates/elementtemplates/Blogtemplates/Pagestemplates/Mailと、少数のフロント表示ロジック用src/View/Helper/*.php。F-系(フロント表示エラー)が主対象だが、テーマ特有の"消えたショートカット系ヘルパーメソッド"の当たり方がプラグインと異なるため、以下に固有パターンとしてまとめる(basercms4-to-5-upgradeの「テーマの変換」章から呼ばれる想定)。
TH-1. $this->BcBaser->siteConfig['key'] / ビュー変数 $siteConfig['key'] は5系に存在しない
- 検出: テンプレ・Helper の
$siteConfig['key']/$this->BcBaser->siteConfig['key'](grep -rn "siteConfig\[" templates/ src/)。5系では構文エラーにならず未定義変数/未定義プロパティの警告つきで空文字が出力されるだけなので気づきにくい(サイト名・住所等が黙って空になる)。 - 変換:
\BaserCore\Utility\BcSiteConfig::get('key')(静的メソッド)へ。キーは4系site_configsテーブルのname列と同じ。1箇所で見つけたら grep でテーマ全体(layout・element・Helper)へ横断適用する。 - 静的ユーティリティの5系の作法は basercms5-theme-development §3「ヘルパ」を参照。