CakePHP 1.3.11 の変更点メモ
今回のCakePHP 1.3.11 リリースは、バグフィックス及びメンテナンスです。
約30のコミットがありましたが、大きな変更がなく、1.3系の安定感を感じます。
逆に、
2.0.0-alpha から 2.0.0-beta は、400を超えるコミットがあり、
1.3.10 から 1.3.11 とほぼ同じ期間しか経っていないことから、
2.0系の開発の活発さが伺えます。
RCの登場の暁には、内容を細かく見に行きたいと思います。
主な変更点
- datasource prefix が過剰に置換されるのを防ぐようになった。
- 該当コミット
- https://github.com/cakephp/cakephp/commit/52b90872dff2c1cfbfbd73759ff42465d91af9d3
- https://github.com/cakephp/cakephp/commit/c5d763773c3d21ad4755abf7c026e68df1a406e2
- https://github.com/cakephp/cakephp/commit/169b0a5c3f211e8ff8138514466b062acc7ff35e
- https://github.com/cakephp/cakephp/commit/b22fdeae778050a753ee37d9aa8a9944f0f947b3
- 該当コミット
<?php // before str_replace($prefix, '', $table); // after preg_replace('/^' . preg_quote($prefix) . '/', '', $table);
preg_quote を読むと、
PHP5.2以下は、「-」がクオートされず、
よく使用される「/」もクオートされない。
なので、下記のどれかの方が良い気がする。
(MySQL では「\+*?[^]$(){}=!<>|:-/」というフィールドの作成は可能)
<?php // 「-」と「/」をクオート preg_replace('/^' . preg_quote(preg_quote($prefix, '-'), '/') . '/', '', $table); // デリミタを「\ + * ? [ ^ ] $ ( ) { } = ! < > | : -」のどれかにする preg_replace('#^' . preg_quote($prefix, '-') . '#', '', $table);
- FormHelper::create で action 属性が2重にエンコードされるのを修正
-
- action 属性が、FormHelper::_parseAttributes の適応外となる。
- 該当コミット
-
- debugger の使用時、DATABASE_CONFIG の値が「***」と隠されるようになった
- 該当コミット
今までは、 MySQL サーバへの接続が失敗した際、
<?php // mysql_select_db($config['database'], $this->connection) の実際は、 mysql_select_db($config['database'], false)
となって、E_WARNING レベルのエラーが生成されていたが、今回の修正により、E_WARNING エラーが発生しなくなる。
- APCキャッシュで永続化できないのを修正
- apc_store の有効期間が0(または、指定しない)とき永続化されるが、ライブラリ側で、永続化を意図した 0 が指定された場合、前回のキャッシュから、0秒経過していると判断されてしまっていた。
- 該当コミット
- 「curves」の単数化(curve)を正しく行えるよう修正
- 該当コミット
- 今までは、「curf」になっていた
- fixture の削除が作成の逆の順で行われるようになり、外部キーにより沿った処理をおこなうようになった。
- 今回最高の修正。CakeTestCase::end は既に逆に削除されていたが、CakeTestCase::after について今回修正された。
- 該当コミット
- 初期配置の home.ctp に iframe でバナーが読み込まれるようになり、重要な情報を知ることができるようになった。
- 初期配置の home.ctp を直ぐに変更してしまうので、使い方が見えない。
- 該当コミット