CakePHP 2.3.10 変更点
公式アナウンス
今回のリリースはバグフィックスリリース
です。
パフォーマンスの改善、PHP5.5.2でのSessionの動作改善、Emailクラスの改善が主な変更点になります。
また、CakePHP2.3系のリリース方針についてアナウンスがあり、CakePHP2.6.0までセキュリティフィックスを継続していくそうです。
今回は同時に CakePHP2.4 もリリースされています。 CakePHP3 の開発も CakePHP2系以上にリソースをつぎ込んで開発が進められており、 片手間ではコミットを追いきれないほどです。
主な変更点
ドキュメント・テストケース・小さな修正は除きます。
全般
- null チェックが
is_null
から=== null
へ統一され、パフォーマンスを改善した=== null
はis_null
より 40倍程度高速に動作する。
Network/Email
AbstractTransport::config
が引数を直接代入していたのを、$config + $this->_config
になり、デフォルト値が省略できるようになった。SmtpTransport::config
でもarray_merge($default, $this->_config, $config)
に変更になった。
CakeEmail::_renderTemplates
'layout' が null の場合、レイアウトが描画されなくなった- ドキュメントでは null で描画と停止できると書いてあるが、null をそのまま View::render に渡すと、null はデフォルトレイアウトを呼び出す意味を持っているので、正しい挙動ではなかった。
- null を渡すと、View::render で描画されない false に内部で置き換わるようになった。
Utility/CakeTime
CakeTime::timeAgoInWords
過去の時間を約1日前などと大雑把に表現できるようになった。また、翻訳も可能にした。CakeTime::CakeTime
strtotime("0000-00-00 00:00:00") の結果が32bit(FALSE)と64bit(-62169955200)で異なるため、false を返すよう修正
Utility/CakeNumber
CakeNumber::precision
整数区切に「,」を使う国・地域の場合、結果が正しくなかったのを修正
Model/AclNode
AclNode::node
結合が'LEFT'から'INNER'へ変更し、パフォーマンスの向上を図る- 2.3.9で変更されなかった部分が今回変更され、すべて'INNER'で結合されるようになった。
Utility/Sanitize
Sanitize::paranoid
データベースとのコネクションを開くのを引数チェックの前から後へ変更し、パフォーマンスを改善した
Routing/Route
RedirectRoute::parse
options['persist'] を正しく運用するよう変更された
Model/Model
Model
使用されていないdeleteQuery
insertQuery
が削除された- 1.3 までの機能であり、利用ようとしても利用できなく、ユーザーに混乱を招くため、削除された。
Console/ShellDispatcher
ShellDispatcher::_initEnvironment
'ROOT' 'APP_DIR' 'APP' の定数が事前に定義済みかどうかを判別するようになり、外部から制御できるようになった。
Model/Datasource
CakeSession::_defaultConfig
'session.auto_start' => 0,
が削除された
Model/Datasource/Database
Sqlite::buildColumn
bigint primary key が正しく生成されるようになった
Cache/Engine
FileEngine::key
Windows 環境で、ファイル名として使えない文字をアンダーラインに変更する処理を追加'<', '>', '?', ':', '|', '*', '"'
が処理されるようになった