公式アナウンス
CakePHP 1.2.7 released
http://bakery.cakephp.org/articles/view/cakephp-1-2-7-released
Since the release of CakePHP 1.2.6 in late January 2010, the development team have closed 36 tickets in 64 commits. This includes a recent minor security concern within the test suite. For those wishing to apply just the minor security patch to an existing installation, we have provided a patch [1] to resolve this issue. This concern is only present in sites that operate with the debug setting enabled, and does not affect deployments using a debug setting of zero.
変更点
- セキュリティ関連の修正がメイン
- SQL関連の修正が多い(特にPostgreSQL)
- 注意点
- 最初の部分は省略しています
- コミットの古い(下にあるもの)から作業しているため、途中で疲れています。
- 肝心の下にあるものの数点は、電子の海に消えました。。。
- はてダのバックアップの設定をしてあったのに、容量不足という不運
Commit: 3af22eec91d4e14d2c31f3bdee36b54e237b8c99
Adding tests from 'tfs' fixes inconsistencies in extracting elements with one path selector. Fixes #555
Commit: 629740d59631857996488a5aa420fbe629769450
Fixing discrepancy between how belongsTo and hasOne assocations are treated in relation to their fields being added into the queryData. hasOne and belongsTo associations now behave the same. Fixes #379
- 影響:Containable behave
Commit: 46c4cab95bd10855ed607d983bd39d5a3e5f9fe4
Fixing Form::dateTime() for GET forms. Tests added. Fixes #522
Commit: 7e277e8239fc643f65c333a8076434a946ce5bbf
Restored ability to link PHP files for CSS and JS from view helpers.
- PHPファイルも使えるようになった。
Commit: f56e24c64166d2c6e394265fb91d11de5ba52b15
Using Inflector::slug in Object::_persist() to avoid parse errors o malformed variable names, closes #365
- 影響:なし
- 変数を Inflector::slug を使って、パースできるようにする
Commit: 289a4e9085ed5b2de0ad937b0ee48111c8a76e2b
Moniro update to file construction.
Commit: 95c1ab3596d0e60964c0c6c99f0e033cb51dbd40
Fixing failing tests in SessionHelper caused by changes in CakeSession. Removing SessionHelper::id() as all it did was call the parent method.
Commit: 39a4566ddc4f5a366ab2526e4275cfc4aa3728e0
Fixing AclNode::node() so that node expressions that could match deeper elements are contained to their parent elements. Test added.
Commit: 5f3f66215aff2af90f06dee407a36adcf8f65f97
Removing return statements from File::__construct.
- 影響なし
- リファクタ
Commit: f846005dfd5dd2ec36357515346193c476a32176
Removed unnecessary override of Session::id() in SessionHelper.
- 影響なし
- そのまんま
Commit: 3040c6f586436df09231191b33c5ec41ac8cd683
Moving tests around in set test.
- 影響なし
- そのまんま
Commit: 35446a42a92907e767442a433384472c40480763
Making filtering of extracted arrays remember their key. This fixes attribute selectors followed by parent selectors returning seemingly random results. Fixes #502
Commit: b559be58221537b220f4bfd1a127e4914e22a349
Moving xml_parser_free() so parser resources are freed immediately after they are used. Helps reduce memory consumption in Xml class. Refs #505
Commit: abefca759a0305b2d945b68aff312a067fa6390b
Fix $host not being defined on SessionHelper.
- 影響:SessionHelper
- そのまんま
Commit: ec3f4b8d34005d533d5d0f6d4003e65971a3e394
Fixes #53, ordering of XML::toArray() operations.
- 影響:XML::toArray() で結果配列の順序に意味を持つ場合
- 自信なし
- テストはあるけど、ソースはコメントアウトしただけで、よく把握できてない。
Commit: 9f5949ab5273048c76bf411d7c0057ba217d6132
Fix for Session Component to use CakeSession started() checks. Refs #332.
Commit: 9740029e9e2db239c54f8db53d69046e04ef0dbe
Fixes #332.
Commit: d95e482894927f8f9dbb80959d36a87d57467ed3
Refs #332. Beginning fix for multiple session starts.
- 影響:SessionComponent
- クッキーが多重に設定されるのを修正
Commit: 4f4d3f9ffe186ed5fde8c1b800903630e66b6113
Fixing extraction of non-zero arrays with only one element and attribute selectors. Fixes #475
- 影響:Set::extract()
- 自信なし
- パス
Commit: cbb65ca85f514df59486b4ac02517d78b9c7e5a5
Moving failing test into new method for non-zero array extraction.
- 影響:Set::extract()
- リファクタ
Commit: e8e520d6f2114b2e954299ca95e7360f4d191535
Added test case for a bug in Set::extract
- 影響:Set::extract()
- バグのテストの追加
Commit: 9d3f2fb4a757e0cccbb590a5062dc4a29dff13e4
Moving Non-Zero tests for Set::extract() into a separate method.
影響:Set::extract() (但し、対象はテスト)
- リファクタ
Commit: 6c8ce984aad2fa830da219cd2665c378cecec340
Adding import for String to ensure that String has been loaded when Security component is used without making any database connections. Fixes #482
- 影響:security コンポーネントだけを呼ぶ場合
- 依存する String クラスを読み込んでいなかった。
Commit: f65cb31cbea30b551369689990a1f0d78af0cc84
Updating documentation for Router::normalize(). Refs #486
- 影響:なし
- コメントの修正
Commit: c3aec39d75a944c2105adbaba286049e03311f02
Chaging array_push call for array_merge, as the first one would produce worng nested arrays in MediaView. closes #391
- 影響:IE
- 自信なし
- array_push を array_merge に代えたのは理解できるけど、array_push は第1引数の配列に参照が付いているため、返値は気にする必要はないけど、 array_merge の結果は、返値で受け取らないと、期待する変化はないはず。array_merge の関数を呼ぶだけ損な気がする。
Commit: 28cb57a92c54a223fed4aacc738db5ccc8bc71c3
Fixing bug in Model::escapeField() where it would return the wrong string id the datasource's name method returs the unmodified string. Tests added. Closes #473
- 影響:Model::escapeField()
- 自信なし
- 正しく「.」をつけて返さない場合があった。
Commit: bc990f41e3d29db70cf5c181a11668c8e63f4bdf
Prevent sql error for uuids if id is specified as null
- 影響:sql
- 自信なし
- 「
Commit: 01a5738f3c7f8553d8203eb565c08beba6e79ca0
Effectively reverting changes made in [190066fd51c222de91989aec97b0042d7bcda7c9] which caused conditions using a falsey values to be removed.
- 影響:sql
- モデルで、'foreignKey' を指定しない意図で指定した値が、配列の参照時にキャストされ、$conditions がセットされてしまう。
- empty関数で 'foreignKey' をチェックするようになった。
Commit: 661fcd32ab56b3c288c922c570ea141461d794ba
Fixing failing tests in PostgreSQL cause by invalid datatype comparisons and missing id fields.
- PostgreSQL (但し、対象はテスト)
Commit: ea64588a814b09565b82c428845f7a096814c327
Adding tests from 'Stephen Cuppert' to test incorrectly generate DELETE queries for habtm join tables that do not have a primary key when using PostgreSQL. Updating DboSource::_matchRecords() to only query the table if the supplied conditions are actually multi-table conditions. Fixes #459
- 影響:PostgreSQL hasAndBelongsToMany に関連した削除
- 自信なし
- primary key を持っていないテーブルを対象とした削除をおこなった場合、そのテーブルのデータが削除されない
Commit: 190066fd51c222de91989aec97b0042d7bcda7c9
Adding array_filter() to remove empty conditions that can be caused by array casting an empty string.
- 影響:hasAndBelongsToMany で'unique' が true (デフォルト)で ’conditions’ に、 配列にキャストした際、1つの要素を持つ配列に変換される値を指定し、それが空文字や false 、0になる場合
- 自信なし
- 配列の値に、空文字や false 、0等の場合、削除されるようにした。
- ’conditions’ の値をマージする際に、 (array) で配列にキャストしてマージ(array_merge)する際に、 ’’ -> array(1), false -> array(false) と変換され、マージすると、それらも引き継がれてしまう。
- array_merge に array_filter(array_merge($arr1, $arr2)) と 第2引数なしの array_filter を被せるようにした。
- array_filter に第2引数を指定しない場合、第1引数の配列の値を boolean にキャストして、 false になるものを削除(false, ''(空の文字列), 0 , null)する模様
- boolean への変換 :http://www.php.net/manual/ja/language.types.boolean.php#language.types.boolean.casting
- array_merge に array_filter(array_merge($arr1, $arr2)) と 第2引数なしの array_filter を被せるようにした。
- ’conditions’ の値をマージする際に、 (array) で配列にキャストしてマージ(array_merge)する際に、 ’’ -> array(1), false -> array(false) と変換され、マージすると、それらも引き継がれてしまう。
Commit: daf02cad61a0979fe6cf85b0aa4e5f2d68a03c2b
Fixing CakeSchema index comparison that was causing failures in postgres tests.
- 影響:PHP4 & PostgreSQL (但し、対象はテスト)
Commit: 3ab687043e57130cbee76ead4ad7865478da718b
Updating DboPostgres test to reflect changes in test suite.
- 影響:なし
Commit: 8d58b40642c182afe307d00debf44a1dbd8a3c62
Fixing issue in Containable where if bindModel was used to add / change a binding not permanently, Containable was making the change permanent
- 影響:Containable を使っている
- モデルが持つバインド用のテンポラリ(__backAssociation)をチェックするようになった。
Commit: 64c627a35241cf9766a035fc02cdd78a908755ef
Adding checks to force limit to always be a positive integer. Fixes potential out of bounds type queries with paginate(). Fixes #418
- 影響:controller::paginate()
- $options['limit'] が 正の整数のみ受け付けるように修正
- $options['limit'] は、まず、int にキャストされ、その後、1未満の場合は、1にするようになった
Commit: af317a107bdb179bce31323d0d28af2c333ebc12
Fixing issues in Set::combine() when data or paths used result in empty datasets. Tests added. Fixes #414
- 影響:Set::combine()
- 内部変数 $keys $values が空の場合、エラーが発生
- 内部変数 $keys $values が空の場合、Set::combine() は 空の配列を返す。
Commit: 348fe6f57463aaa20d77984254f493d9ca4fe9f1
Expanding documentation for FormHelper::submit() Fixes #390
- 影響:なし
- FormHelper::submit() のオプションの説明を追加
Commit: 763aa524b95f666d1a20d7e58b896f39d830dbd0
Fixing recursive directory creation when nested create() calls fail. Fixes #347
- 影響:Folder::create() を使っている
- Folder::create() が成功しても false を返していた
- ture を返すようになった
Commit: f4c670e5be6bf6a9599d394669999fcadd01e4b1
Fixing lack of space in meta tags lacking a link attribute. Fixes #371
- 影響:HtmlHelper::meta でコードを生成している(xhtml)
- メタタグの「/>」の前にスペースがなかった。「content="enter any meta keyword here"/>」 -> 「content="enter any meta keyword here" />」
Commit: ab688b88f408132a272b71b1c93dbb8ec42fcbad
Adding test to check that postfix and prefix options don't go into inner objects. Tests added, fixes #348
- 影響:JavascriptHelper で JSのオブジェクトの生成をしている
- オプションの postfix と prefix の初期化が不十分で、内部のオブジェクトに正しく伝わっていなかった。
- オプションの postfix と prefix の初期化を追加
Commit: 63f7900ba1647e2111b85d9445d3973f746f93f5
Checking if the last query returned a error, tests added. Fixes #72.
- 影響:mssql で dbo を使っている
- 自信なし
- クエリーのエラーとデータベースのエラーを分けていないために、正常なクエリーまでもエラーを返すようになる。
- クエリーのエラーとデータベースのエラーを分けるコードを追加
Commit: fc499ac48f9caa7e99d656f64c25b64d13348f98
Reversing order of short cut checks. Fixes issues in PHP 5.1.x. Fixes #351
- 影響:PHP5.1 系で dbo を使っている
- 自信なし
- PHP5.1 系で dbo を使っていると、「Notice (8): Object of class stdClass could not be converted to int 」という Notice エラーが出る模様
- 以下のチェックを後回しにすると、解消したらしい。
<?php if ($data == '*') { return '*'; }
電子の海に消えたものより
Commit: 2cf294a749144b2cca2d06bab5db24abcb20f3c8
Fixing typo in Finland for sv-fi language. Fixes #308
癒された(*・ω・) < Findland!!
〜〜ここから追記〜〜
Commit: d5ea6b7c2a99bbda503f2247702aa4a6953dcf1b
Flushing the CR after a model is baked, tests added. Refs #310
- 影響:bake
- モデル作成後に、classregistry を初期化するようになった
- モデルを先に作成すると、アソシエーションの情報が controller と view に正しく伝わっておらず、再生成する必要があった。
Commit:
104da15a737a13283f827d049beb1d0bea5344d5
Making built-in Canadian postal code validation accept postal
codes with no spaces. Fixes #289
- 影響:カナダの郵便番号を validation
- カナダの郵便番号の validation が緩くなった
- 正規表現の変更
<?php // 変更前 : 'L4J8D6' (FAIL), 'L4J 8D6' (OK) $_this->regex = '/\\A\\b[ABCEGHJKLMNPRSTVXY][0-9][A-Z] [0-9][A-Z][0-9]\\b\\z/i'; // 変更後 : 'L4J8D6' (OK), 'L4J 8D6' (OK) $_this->regex = '/\\A\\b[ABCEGHJKLMNPRSTVXY][0-9][A-Z] ?[0-9][A-Z][0-9]\\b\\z/i';
Commit:
2c1e6de7d628f38904f79ad631d5378254399305
Another fix for array_values() throwing a warning when using
Tree Behavior under certain situations.
Commit:
205c95ef65e3a41cfef6ab11ffa1fa044e967470
Fix array_values() warning when using Tree Behavior under
certain situations.
- 影響:Tree Behavior
- array array_values ( array $input ) の引数に false を渡す可能性があった
- 一旦別の変数に退避して、値をチェックするようになった
Commit:
8d382d9168e98140367e908d1855e70292b71f5f
Fixes #288. TextHelper truncation not playing nice with
html in ending.
- 影響:TextHelper::truncation で $ending に html タグを設定している
- $ending に含まれる html タグまで、省略する文字数に含まれていた。
- strip_tags 関数により、すべての html タグを削除した状態で文字数をカウントするようになった。
- その他 :マルチバイトに対応しているなぁ、と思ったら、1ヶ所だけ、規程の文字数と与えられた文字列の比較の所で、strlen が使われていた。$ending (「...」の文字を指定する所)にマルチバイトを与えると、予想以上に、出力する文字が短くなる。と思うのだけど、ここ1ヶ所だけのため、仕様かな、と思える。
<?php if (mb_strlen($text) <= $length) { return $text; } else { $truncate = mb_substr($text, 0, $length - strlen($ending)); }
あとのコミットは、コメント部分の修正のため、省略です。