遅くなってしまい申し訳ありません。。。11/29の記事です。
元記事はこちら。
CakePHP コアチームは CakePHP 3.1.5 がリリースされたことをお知らせいたします。これは3.1系についてコミュニティから寄せられた幾つかの問題を修正したメンテナンスリリースになります。
バグフィックス
3.1.5の変更点の概要は以下のとおりです。詳細はchangelogをご覧ください。
- Collection::toArray() は RecursiveIterator を扱う際にキーを削除するようになった。コレクション機能の取扱について、利用者が期待する通りの機能を提供するようになった
- APIドキュメントの改善
- ResultSet::isEmpty() は、バッファ済みの未処理の繰り返し処理でレコードを消費しなくなった
- サブクエリやORDER BY句を使用したイーガーローディングのアソシエーションで、ORMは無効なクエリを削除しなくなった。ORDER BY句に使用されているフィールドは選択フィールドにも含められる。
- エラーハンドリングが PHP7 互換になった。これにより最近のPHP7互換エラーが解消される
- BelongsToMany アソシエーションで、bindingKey を正しく使用するようになった
- 数値型の型変換で負数を正しく処理できるようになった
- シェルでmainメソッドを実行しているとき、現在のコマンド名はmainにセットされる
- 「spellcheck」は標準属性になった。HTML5の属性とは異なり、spellcheck属性はtrueまたはfalseの値を必要とし、最小化した記述はできなくなった
- CSRF検証は ‘GET’, ‘OPTIONS’, ‘HEAD’以外のすべてのHTTPメソッドに適用されるようになった。CSRF検証をすり抜けるためにほかのHTTPメソッドを使用することを避けるため
- RouterBuilder::resources() で、’inflect’ => ‘dasherize’ とネストしたリソースを使用している場合にオブジェクトIDを正しく反映するようになった
- TimeHelper::format() で、フォーマット前(初期化時)に日時文字列を指定されたタイムゾーンにシフトしなくなった
- Shell::createFile() で、Windows環境で暗黙的に \n を \r\n に変更しなくなった
小さな機能拡張
- RouteBuilder::addExtension() の追加。このメソッドは既存の機能拡張を置き換える代わりに機能拡張を順次追加していく
- Table::save(), HasMany, BelongsToMany に渡されるオプションで、 link/unlink/replace は内部で Table::save/delete() の呼び出しにそのまま渡される
- CsrfComponent で httpOnly オプションの追加。このオプションを追加することにより CSRF がクライアントサイドスクリプト経由でクッキーにアクセスすることはできなくなる
いつもながら、問題報告やプルリクエストにより、このリリースの実現を支えてくれたコミュニティの皆さんに感謝します。
github よりパッケージリリースのダウンロード