zz log

zaininnari Blog

CakePHP 2.3.6 変更点

  • 公式アナウンス
  • メンテナンスリリース
    • 2.2系で報告されたチケットが閉じられても2.2系のリリースがないということは、2.2系はセキュリティリリースだけのサポートになるのかな?
      • 現時点では github に2.2系のブランチはない

主な変更点

ドキュメント・テストケースの修正は除きます。

CakeTime

  • 日付・日時を比較するメソッドがタイムゾーンを揃えて比較するようになった。

FormHelper

  • tagIsInvalid 複数レコード保存時にエラー表示を正しく表示できるように、パスを正規化するよう修正
    • tagIsInvalidModel.fieldnameModel.$i.fieldname という形式のみ受け入れていた
    • 複数レコード保存時のバリデート結果を表示させる際に、tagIsInvalidが必要とする形式に正規化するのは、手間がかかるのでフレームワーク側で対処することになったという認識

Controller

  • constructClasses コンポーネントの初期化がmodelClassの修正後に実行されるようになった
    • コンポーネントからモデルへアクセスする場合に、正しいモデル名を使用できるようになった
  • constructClasses $this->uses にアクセスする際、他のイテレータでポインタが終点にある場合を考慮して必ずresetを行うようになった

CakeEmail

  • 添付ファイルを読み込みbase64_encodechunk_split(76文字毎の分割)を行うreadFileがパブリックメソッドとなり、クラス外から呼べるようになった。
  • 日本語の折り返しを正しく処理できるよう変更
  • config 設定の上書きが可能になった
    • 以前は配列の足し算のため、上書きが困難だった
  • 折り返し文字数が初期値以外の場合、単語の分割をしなくなった

SmtpTransport

  • config 空配列を与えた際、既存の設定を上書きしなくなった

RequestHandlerComponent

  • beforeRedirect URLがnullの場合、requestActionを動作しないよう変更

AssetDispatcher

  • http://example.com//index.php のようなダブルスラッシュを含むURLを指定した場合、エラーが発生するのを修正
    • _getAssetFile内で、URL をexplode('/', $url) で分離させて、その最初の要素をプラグインとして扱っている
    • http://example.com//index.php が与えられた場合、最初の要素は空文字になり、CakePlugin::loaded に不都合が生じてしまうため、プラグイン名の存在をチェックするようになった。

HtmlHelper

  • tag $this->Html->tag(false, 'stuff') とタグ名がfalsenull、空文字のとき、テキスト内容そのまま返すようになった。
    • 以前は、<>stuff<>という壊れた結果を返していた
  • script``scriptBlock の type="text/javascript" を変更できるようになった

Permission

  • allow 不正なアクション名を指定したとき、例外が発生するようになった

ExceptionRenderer

  • CakeErrorController は AppController が存在するときだけ使用するよう変更

XML

  • パースエラーが発生した際、XmlException の例外を投げるよう修正

TranslateBehavior

  • $alias の代わりに $name を使用するよう変更

CookieComponent

  • 32bit上で2038年を超える日付を指定していも正しく動作するよう変更

FileEngine

  • clearGroup が settings['prefix'] を考慮するようになった