元記事はこちら。
CakePHP コアチームはCakePHP 3.1.2 が入手可能になったことをお知らせいたします。これは3.1系のメンテナンスリリースであり、バグフィックスといくらかの機能拡張を含んでいます。
バグフィックス
3.1.2の変更点の概要は以下のとおりです。すべての変更点はこちらから参照できます。
- 関連を含む際、クエリに列のデータ型が追加された。関連するカラムの条件にDATATIME型のような複雑なデータ型を使用できるようになる。
- RequestHandlerComponentによってrequestActionに変換されたクエリ付きのXMLHttpRequestは仕様通り動作するようになった
- Hash::extract() の ArrayAccess オブジェクトとの互換性が改善された
- クエリ中のCASEIN表現で、「0」の扱いの問題が修正された
- debug() は schema や prefix を省略しなくなった
- Validation::datetime() は日付と時刻の間の「,」を受け付けるようになった。en_USロケールの書式のバリデーションが容易になった
- ProgressHelperの描画時の問題が修正された
- クエリオブジェクトの複製時、期待通りディープクローンを生成するようになった
- APIドキュメントの修正
機能拡張
- HasManyアソシエーションで、保存モード「replace」のサポート。このモードでは、既存の関連のうちエンティティの現在のプロパティにないものは削除される。新しいレコードが挿入される。
- IntegrationTestCaseが提供する enableCsrfToken() と enableSecurityToken() メソッドにより、CsrfComponent と SecurityComponent とのテストがより簡単になった
- CSRFトークンのPOSTフィールドは、検証後リクエストデータから削除されるようになった。CSRFトークンを手動削除しなくてよくなったので、「Post Redirect Get」のワークフローがシンプルになった
- NetworkSocket は ssl_verify_peer のようなプレフィックス経由のすべての通常のSSLコンテキストオプションをサポートするようになった。これらのオプションはSmtpTransportで設定できる。
- テストフィクスチャの制約管理が大幅に改善された。もはや制約が確実にフィクスチャにも適用さるよう指示しなくて良くなった。代わりにすべてのテーブルとレコードを作成したのちにテーブル制約が作成されるようになった
- SQLステートメントでデータ型を準備する際、無効な値があれば実行後失敗するのではなく例外を送出するようになった
いつもながら、問題報告やプルリクエストにより、このリリースの実現を支えてくれたコミュニティの皆さんに感謝します。
githubよりパッケージリリースのダウンロード