CakePHP 2.3.6 変更点
- 公式アナウンス
- メンテナンスリリース
- 2.2系で報告されたチケットが閉じられても2.2系のリリースがないということは、2.2系はセキュリティリリースだけのサポートになるのかな?
- 現時点では github に2.2系のブランチはない
- 2.2系で報告されたチケットが閉じられても2.2系のリリースがないということは、2.2系はセキュリティリリースだけのサポートになるのかな?
主な変更点
ドキュメント・テストケースの修正は除きます。
CakeTime
- 日付・日時を比較するメソッドがタイムゾーンを揃えて比較するようになった。
FormHelper
tagIsInvalid
複数レコード保存時にエラー表示を正しく表示できるように、パスを正規化するよう修正tagIsInvalid
はModel.fieldname
とModel.$i.fieldname
という形式のみ受け入れていた- 複数レコード保存時のバリデート結果を表示させる際に、
tagIsInvalid
が必要とする形式に正規化するのは、手間がかかるのでフレームワーク側で対処することになったという認識
Controller
constructClasses
コンポーネントの初期化がmodelClass
の修正後に実行されるようになった- コンポーネントからモデルへアクセスする場合に、正しいモデル名を使用できるようになった
constructClasses
$this->uses にアクセスする際、他のイテレータでポインタが終点にある場合を考慮して必ずreset
を行うようになった
CakeEmail
- 添付ファイルを読み込み
base64_encode
とchunk_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') とタグ名がfalse
やnull
、空文字のとき、テキスト内容そのまま返すようになった。- 以前は、<>stuff<>という壊れた結果を返していた
script``scriptBlock
の type="text/javascript" を変更できるようになった
Permission
allow
不正なアクション名を指定したとき、例外が発生するようになった
ExceptionRenderer
- CakeErrorController は AppController が存在するときだけ使用するよう変更
XML
- パースエラーが発生した際、XmlException の例外を投げるよう修正
TranslateBehavior
- $alias の代わりに $name を使用するよう変更
CookieComponent
- 32bit上で2038年を超える日付を指定していも正しく動作するよう変更
FileEngine
- clearGroup が settings['prefix'] を考慮するようになった