ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

CakePHP3.6.13にバージョンアップしました #cakephp

f:id:yourmystar_engineer:20181127230520p:plain

どうも。ユアマイスター星(@inase17000)です。

前回は2018年3月にこっそり3.5.13にバージョンアップしたままにしていたCakePHPのバージョンアップを行いました。

CakePHP3.6はCakePHP4系と完全互換があるといわれています。 つまり、CakePHP4にバージョンをあげたいのなら、必ず、3.6にまではあげないといけないということなので、今までより責任重大です。

調べてる中で少し気になったところをまとめておきます!

非推奨の警告の無効化

まずは、オフィシャルドキュメントのcookbookを見てみましょう。

3.6 移行ガイド - 3.6

CakePHP 3.6 は、3.5 の API の完全上位互換です。

当たり前のことですが、当たり前のところから確認を進めます。

見ていくと、3.5に比べても増して「非推奨」が増えています。3.6から明示的にNoticeが出力されるようになったようで画面上にもめちゃめちゃ警告が出るようになりました。もうdeprecatedの嵐です。

4系に向けての対応は後でまとめて対応したかったので、今回の3.6へのバージョンアップでは、一部のクラスのgetter, setterの改修にとどめ、あとでまとめてやろうということにしました。

とはいえ、この警告が出続けるのは開発の邪魔でしかない。

ということで、以下の設定を加え、一時的に警告が出ないような設定を加えました。

非推奨警告は、将来のバージョンの CakePHP の準備に役立つように意図されていますが、 コードの更新は段階的な作業になる可能性があります。 新しい方法の採用に取り組んでいる間、非推奨警告を無効にすることができます。 config/app.php の中で Error.errorLevel を設定できます。

// config/app.php の中で
'Error' => [
    'errorLevel' => E_ALL ^ E_USER_DEPRECATED
]

また本気で取り組むときに、警告だらけにして一個ずつ潰していきます。

どうやらCakePHP3.7もリリース準備中の模様。

下記のリリースノートでは、3.6が3系の最終版で、以降は4系に移行していくようなことを言われていました。

bakery.cakephp.org

が、しかし、最新のリリースノートでは、着々と3.7へのロードマップも敷かれているようです。

bakery.cakephp.org

3.7 is the last planned minor release of CakePHP 3.x before 4.0 is released. Once 4.0 is released, 2.x will only receive security fixes, and 3.x will only continue to receive bug & security fix releases. If there is significant community interest there may be a 3.8 release, but there are no plans at this point in time.

(訳)3.7は4.0以前でのCakePHP 3.x系の最後のマイナーリリースです。4.0がリリースされた暁には、2.x系はセキュリティー対応のパッチのみ、3.x系はバグとセキュリティー対応のパッチのみとなります。コミュニティー内では、「3.8のリリースがあるかもしれない」とめちゃめちゃ気にしている人も多いかもしれないが、現時点ではそんな予定はないのである。

最後の「現時点では」っていうのが引っかかりますが、これで本当に最後の3系でしょう。

本格的にdeprecatedの嵐を沈めるのは3.7にあげてからでもいいかもしれないと考えています。

それにしても、バージョンアップって侮れないですね。。。

以上です。