basercms4-to-5-upgrade
Installation
SKILL.md
baserCMS 4 から 5 へのアップグレード/移行ルール
このファイルは、baserCMS 4 (CakePHP 2ベース) のコードを baserCMS 5 (CakePHP 5ベース) に移行する際、AIエージェントが遵守すべきルールとパターンを定義します。
推奨: 移行に着手する前に一度
basercms5-claude-workflow-setup(環境セットアップ)を参照し、進め方の環境(権限整理=permissions-audit/その上での Auto mode/設計=superpowers brainstorming/spec・plan の Markdown プレビュー)を整える。提案ベースで、整っていればスキップ。
基本方針
- フレームワークの差異: baserCMS 4 は CakePHP 2、baserCMS 5 は CakePHP 5 ベースです。CakePHP 2 の記法は基本的に動作しません。CakePHP 5 の記法に完全に書き換えてください。
- クラスの置換: 廃止されたクラスは、代替クラスまたはPHP標準クラスに置き換えてください。
- アクセサの利用: プロパティへの直接アクセスは避け、Getter/Setter を使用してください。
- アップグレードの詳細情報については https://baserproject.github.io/5/ver5_migration を参考にする。
- 【最重要・横断対応の原則】1画面の修正で見つけた不具合のうち、同じ原因がプラグイン/サイト全体に散在するものは、その場で“横断的に”一括対応する。1箇所だけ直して次の画面で同じエラーに当たる、を繰り返さない。手順: ①エラーを直したら 同じパターンを
grep -rnで全件洗い出す(例:$this->Form->input(、'multiple' => 'checkbox'、単数get('Sample.Sample...')、searches/、Time->format($x)第2引数なし 等)→ ②機械的に一意な変換はperl -piで一括適用 → ③変更ファイルを全てphp -lで検証 → ④非自明な箇所だけ個別対応。横断一括できる代表例は basercms-plugin-4-to-5-upgrade スキルの C-0(機械的に一括変換できるパターン) にカタログ化してある(見つけ次第追記する)。新しい横断パターンを見つけたらまず C-0 に追加してから一括実行する。プラグイン内部コード(Controller/Table/Entity/View/Helper/フォーム/Vue・JS)の具体的な書き換えは同スキルを参照。
標準移行フロー(この順で進める・正本)
移行全体はこのチェックリストの順序で進める。順序依存の罠(★印)が複数あるため、節の並びや思い込みで順番を変えないこと。各工程の詳細は参照先の節に書いてある。