こんにちは。最近は妄想キャリブレーションの『桜色ダイアリー』をヘビロテしているサーバーサイドエンジニアの@itoshoです。
既に3.4.9がリリースされていますが(汗)、先週3.4.8がリリースされましたので、今回も簡単にアップデート内容をまとめさせていただきました。
CakePHP3.4.8の変更点まとめ
今回は以下の変更がありました。
- composerのkeywordsが改善されました。
BelongsToMany::link()
関数で複数の操作が正しく持続されない不具合が修正されました。- APIドキュメントが改善されました。
- POファイル解析で同じメッセージキーが定義されている時、コンテキストの有無を問わずメッセージが正しく解析出来るように修正されました。
- この変更により、翻訳メッセージの内部データが変更されるため、アップグレードする際はi18nキャッシュデータを消去する必要があるようです。
ValidationRule
でunpack errorが発生する不具合が修正されました。RouteBuilder::prefix()
関数でpathセグメント(prefix routing scopeに使用される)をカスタマイズ出来るようにするためのpathオプションがサポートされました。Logging
でentityのJSONエンコードバージョンがログに記録されるように修正されました。- さらにログに記録されたJsonSerializableインスタンスは、Unicodeデータをエンコードしないようです。
- 他の
Query::matching()
関数の中で呼び出されたQuery::matching()
関数を使用するページネーションクエリが無効なSQLを発行する不具合が修正されました。 - AngularJSによって生成されたURLが正しくパースされない不具合が修正されました。
Mailer
でEmail上でのgetter関数が正しくプロキシされない不具合が修正されました。Database\Query::clause()
関数が不明なクラスを読み込んだ際にexceptionが発生するよう修正されました。RedisEngine::add()
関数はキーを2回書く代わりに、setTimeout()
を使ってTTLを出来るようになりましたRedisEngine::increment()
,decrement()
関数はカウンターでTTLをセット出来るようになりました。- Memcachedのカウンターと一貫した動作になったようです。
Z
を使ったISO8601形式の日付データが正しくパースされない不具合が修正されました。ProgressHelper::init()
,draw()
,increment()
関数は$this
を返却するようになりました。- Auto Incrementが明示的に無効になっている場合、MySQLスキーマのリフレクションによって、主キーのカラムが自動的にインクリメントされなくなりました。
FormHelper::radio()
関数で、オプションが複合フォームで定義され、オプションのサブセットのみがdisabled属性になっている場合に、disabled属性が正しく生成されない不具合が修正されました。TableHelper::output()
関数で全ての行が同じキーを持つ必要がなくなりました。
詳細は公式のリリースノートをご覧ください。
また、リリースノートには記載されておりませんが、先日界隈で話題になった ServerRequestFactory
クラス内のextract()
関数が予期せぬ不具合を引き起こす可能性がある問題*1も修正されております。スピード感素晴らしいですね!
アップデート時にやったこと
リリースノートの項目自体は多かったものの、弊社のプロダクトに影響がありそうな変更はなかったため、今回も composer update
コマンドを実行後、CIが通っていればOKとして、リリースを行いました。
(リリース後も特に問題は発生しておりません)
おわりに
この冴えない連載も気付けば4回目の更新になりました!更にこの連載を育てるべく次回の更新は弊社Superエンジニア@super_mannerがお届けします!