blog.heartyfluid

勉強したることども

[記事]CakePHP 5.0.0-beta1 Released

とうとう CakePHP5 の beta1 がリリース。

bakery.cakephp.org

よりくわしい変更点は移行ガイドに: 5.0 Migration Guide - 5.x

新機能は思いのほか少ない。

CakePHP 5 leverages the expanded type system feature available in PHP8.1+.

型宣言をより積極的にしていくのが変更の主眼か。このあたりがどの程度アプリ開発のしやすさに寄与してくるのかは、使ってみないとわからないところか。

CakePHP also uses assert() to provide improved error messages and additional type soundness. In production mode, you can configure PHP to not generate code for assert() yielding improved application performance.

すなわち、CakePHP アプリの本番環境では zend.assertions-1 に設定しておく必要が出てくる。従来は「本番環境の PHP 設定がどうなっているかわからないから…」とプロダクトコードに assert() を使うのをためらう案件もあったけれど、フレームワーク側でそもそも使っているならスタンスが変わってきそう。

Query::all() was added which runs result decorator callbacks and returns a result set for select queries.

これが何のことを言っているのか、ざっと見ただけではわからず。ただ従来 Cake\ORM\Query::$_type でクエリの種別( select / insert / update / delete)を表現していたところ、クエリの種別ごとにクラスが新設されているのは見つけた。

EnumType was added to allow mapping between PHP backed enums and a string or integer column.

PHP8.1 で追加された列挙型を使った EnumType が提供されるのはうれしい。ぜひ使いたい。

前回の CakePHP4 リリース時をふりかえると、4.0.0 beta1 リリースから 4.0.0 正式リリースまでは約半年。すると5.0.0の正式リリースは来年2023年半ばくらいかしら。