cakephp-migration
Installation
SKILL.md
CakePHP バージョン移行ガイド(baserCMS)
CakePHP のアップグレードで遭遇した破壊的変更・非推奨と修正レシピ集。バージョン別に整理して育てる。PHP 本体起因(暗黙nullable・動的プロパティ等)は別スキル php-migration を参照。
収録: 5.0 → 5.1、5.1 → 5.2。バージョンの帰属は移行作業時の実観測ベース(厳密な導入版と差異がありうる)。新バージョン対応時は新しい「## X.Y → X.Z の変更」節を追記する。
大原則(全バージョン共通)
- アップグレードは
composer requireを使う。composer updateは使わない(依存全体が動くのを避ける)。 例:composer require cakephp/cakephp:"5.2.*" --update-with-dependencies - 「致命的エラー」と「非推奨警告」を区別する。デバッグモードでは非推奨警告が画面下部に表示され「エラー」に見えるが、
logs/debug.logのdebug:は警告(動作継続)。logs/error.logや Fatal/Exception が本当のエラー。 - テスト大量失敗時は根本原因単位で分類する。数百件の失敗でも原因は十数種。フルログから例外を集計して systemic な原因を先に潰す(集計コマンド・切り分け手順は
basercms-unittestスキル参照)。 - regression と既存/環境failを切り分ける。
git diff HEAD -- <file>で自分の変更対象か確認。未変更ファイルかつ fixture/プラグインロード依存(Plugin::isLoaded('X')が false/DIコンテナ未登録/英語↔日本語メッセージ不一致)なら移行起因ではなく環境要因。vendor が既に新版に入れ替わっているため単純なgit stashではクリーンな baseline は作れない。
ユニットテストの実行方法・失敗の集計と切り分け手順は
basercms-unittestスキルを参照。