まず始めに、お手元のアプリケーションが CakePHP 4.x の最新バージョンで動作していることを確認して下さい。
CakePHP 4.x の最新バージョンで動作していることが確認できたら config/app.php の設定を変更して、非推奨警告を有効にします:
'Error' => [
'errorLevel' => E_ALL,
]
これによって全ての警告が見えるようになります。アップグレードの作業を始める前に確実にこれを済ませておいて下さい。
いくつか、影響の大きな非推奨項目があります。
Table::query()
は 4.5.0 で非推奨となりました。代わりに selectQuery()
, updateQuery()
, insertQuery()
, deleteQuery()
を使用して下さい。
もしもPHPのバージョンが 8.1 または それ以上 ではない場合、CakePHPのアップデートをする前にPHPのアップグレードをして下さい。
注釈
CakePHP 5.0 の実行には 最低でも PHP 8.1 が必要です。
注釈
このアップグレード・ツールは、最新の CakePHP 4.x でのみ実行可能です。CakePHP を 5.0 にした後では実行することはできません。
CakePHP 5 では、union型 や mixed
型を有効活用するので、メソッドのシグネチャやファイル名などで、後方互換性を持たない変更が多く含まれます。
つまらない仕事をさっさと片付けるために、アップグレード用の CLI ツールを利用して下さい。
# Install the upgrade tool
git clone https://github.com/cakephp/upgrade
cd upgrade
git checkout 5.x
composer install --no-dev
このアップグレードツールがインストールされると、お手元のアプリケーションやプラグインにおいて実行可能となります:
bin/cake upgrade rector --rules cakephp50 <app/src へのパス>
bin/cake upgrade rector --rules chronos3 <app/src へのパス>
ツールでのアップグレードが完了した後には、 composer.json
に示されている、CakePHPやそのプラグイン、PHPUnit、そしてその他の多くの依存関係をアップグレードしましょう。
この作業の内容は、お手元のアプリケーションの状況によって変わりますので、 composer.json
ファイルを、お手元のアプリケーションのものと、 CakePHP 5.x のアプリのテンプレート cakephp/app とで見比べると良いでしょう。
composer.json
のバージョンが調整されたら、 composer update -W
を実行して、結果を確認しましょう。
次に、アプリケーションの他のファイルについても、アプリのテンプレート cakephp/app を見て、必要なアップデートを施します。