CakePHP 1.3.9 の変更点メモ
1.3系におけるバグフィックス及びメンテナンスリリースだそうです。
- CakePHP 1.3.9 and 2.0.0-alpha released
- 変更差分(1.3.8 -> 1.3.9)
変更点
- bake でファイルを生成の際、PHPタグの終点「?>」が付かないようになった。
- 地味に嬉しい修正。今まで手動で削除していた。
- Auth コンポーネントの性能向上
- 該当コミット
- startup メソッドが実行される際、user() の呼び出しをキャッシュして呼び出し回数を減らすよう変更
- Validation::url() で「[」と「]」が許可されるようになった。
- 「http://example.com/images/239537750-284232-215_300[1].jpg」という画像へアクセスできる
- チケット
- コミット
- https://github.com/cakephp/cakephp/commit/04948762175f855a460cb1fc5ef6ddd05a430cd2#cake/libs/validation.php
- 「IEを使っている人が、インターネット上から画像をコピーして、再びアップロードする」という場面で有効そう。
- The MySQL driver no longer does joins on delete queries unless a join is required.
- JOIN が必要ではない限り JOIN しない
- チケット
- たぶんこんな感じ?
- 例) User hasOne Confirm, Confirm belongsTo User なモデル
[controller]
<?php // 確認期限が過ぎているものを削除したい $conditions = array( 'Confirm.created <' => $time // MySQL time format ); $cascade = true; $this->User->Confirm->deleteAll($conditions, $cascade);
// CakePHP 1.3.8 以前 // `Confirm` のレコードだけ削除したいのに、`User` を JOIN している。 // LEFT JOIN の SQL を構築するオーバーヘッドがあるし、 // SQL が読み取りにくくなる DELETE `Confirm` FROM `confirms` AS `Confirm` LEFT JOIN `users` AS `User` ON (`Confirm`.`user_id` = `User`.`id`) WHERE `Confirm`.`id` IN (13, 15) // CakePHP 1.3.9 以降 // LEFT JOIN が無くなり、シンプルに。 DELETE `Confirm` FROM `confirms` AS `Confirm` WHERE `Confirm`.`id` IN (13, 15)