後方互換性ガイド
アプリケーションを簡単に、円滑にアップグレードできるようにすることは重要です。 Piece of Cake 2 フォークは CakePHP 2 の公開 API を維持し、新機能は追加しません。 変更は PHP への対応、バグ修正、セキュリティ修正、CakePHP 5 への移行の支援に限られています。
それでも、CakePHP 2 を PHP 8 で動かし続けるためには、アプリケーションに影響する変更が いくつか必要でした。このページでは、リリースに何を期待できるかを説明します。
リリースで何が変わるか
ほとんどのリリースには、アプリケーションの変更を必要としないバグ修正と互換性の修正だけが 含まれます。ただし、アプリケーションの変更が必要になる変更を含んだリリースもありました。 例えば次のようなものです。
- Xcache と Wincache のキャッシュエンジンの削除 (2.10.24.3)
- Composer によるインストールの必須化と、Bake および 1.3 から 2.0 へのアップグレードシェルの 別プラグインへの分離
- フレームワークの新しいディレクトリ構成 (2.11.0)
- フレームワークとアプリケーションの Composer classmap オートロード (2.12.0)
このような変更は、特定の種類のバージョン番号に限られていません。2.10.24.3 のような リリースにも含まれていました。更新する前に、現在のバージョンから新しいバージョンまでの すべてのリリースについて CHANGELOG を読み、アプリケーションのテストスイートを実行してください。
移行ガイド
アプリケーションの変更が必要になる変更点は、移行手順とともにフレームワークの UPGRADE ガイド と CakePHP 2.10 からの移行 で説明しています。 本家の CakePHP 2.10.24 からフォークへアプリケーションを移行する方法も、これらに書かれています。
本家 CakePHP の 2.10 までの各リリースの移行ガイドは、このドキュメントの 付録 セクションで見ることができます。
CakePHP を使う場合
CakePHP でアプリケーションを作る場合、最も頼りにできるのは公開 API です。 フレームワークのクラスのインスタンスを作ること、public なメソッドを呼ぶこと、 public なプロパティを読み書きすること、そしてクラスを継承して public なメソッドを 同じシグネチャでオーバーライドすることがこれにあたります。
フレームワークの内部に依存するコードは、修正の影響を受けやすくなります。 フレームワークのクラスの protected なメソッドを呼んだりオーバーライドしたりするコードや、 protected なプロパティを読んだりオーバーライドしたりするコードがこれにあたります。 API ドキュメントで @internal タグが付いているクラスには、後方互換性の保証はありません。
アプリケーションでフレームワークのメソッドをオーバーライドしている場合は、 シグネチャを変えないでください。特に、フレームワークのメソッドに型宣言がないのに オーバーライドするメソッドに型宣言を追加すると、致命的エラーになることがあります。
CakePHP に貢献する場合
フォークに貢献する場合は、コントリビューションガイドの Backwards Compatibility (英語) のガイドラインに従ってください。
