CakePHP 2.1.3
2.1.3には多くのバグフィックスがあります。顕著なものは:
- ControllerTestCase はリクエストのシミュレーション時に GET/POST を上書きしないようになった
- Xml::fromArray() はシーケンス外の数字キーを適切に処理するようになった
- TranslateBehavior と Model::saveAll() は hasMany アソシエーションで翻訳を正しく保存するようになった
- Router::queryString() は既存のクエリ文字列への追加を適切に扱えるようになった
- beforeValidate() コールバックによって修正されたデータを Model::saveMany(), saveAssociated() が正しく保存するようになった
- ビューはコントローラーのイベントマネージャインスタンスを正しく再利用するようになった
- Model::saveAll() とデフォルト値は正しく動作するようになった
パッケージリリースはhttp://pear.cakephp.orgからダウンロードできますし、githubからZIPファイルを入手できます。
CakePHP 2.2.0-RC1
CakePHP 2.2.0 ベータ以降、幾つもの新機能や機能拡張がマージされています。
CakeTime クラスで Timezone をサポート
$timezone パラメータはすべての関係する関数で $userOffset パラメータに置き換えられました。数値のオフセットの代わりにtimezoneの文字列かDateTimeZoneオブジェクトを渡すことができます。$timezone パラメータに数値のオフセットを渡すことは後方互換性のため可能になっています。
CakeTime::timeAgoInWords()
は accuracy オプションが追加されました。このオプションにより、書式化された日時の正確性を指定できます。
他にも以下のような新しいメソッドが追加されました。
- CakeTime::toServer()
- CakeTime::timezone()
- CakeTime::listTimezones()
すべてのメソッドで $dateString パラメータは DateTime オブジェクトを受け付けるようになりました。ユーザーのタイムゾーンの文字列を設定するのに新しい設定パラメータ ‘Config.timezone’ が利用可能です。
バリデーションルールを動的に作成・修正
新しいオブジェクト ModelValidator
がモデルデータのバリデーション作業の委譲のために追加され、これはアプリケーションに対して平明で、十分な後方互換性があります。さらにリッチなAPIが公開され、バリデーションルールを追加・修正・削除できます。このオブジェクトのためのドキュメントはhttp://book.cakephp.org/2.0/en/models/data-validation.html#dynamically-change-validation-rulesにあります。
設定ファイルをオンザフライ生成
Configure::dump()
が追加されました。設定データをファイルのような耐久性のあるストレージに保持するために用いられます。PhpReader と IniReader が連携して動作します。
CakeLog
CakeLogクラスは RFC 5424 に定義されているとおりのログレベルを受け付けます。他にも便利なメソッドがCakeLog
クラスに追加されています:
- emergency
- alert
- critical
- error
- warning
- notice
- info
- debug
ログエンジンはscope
で設定した内容だけを収集します。必ずConfig/bootsrap.phpに以下の行を追加してください。
// Add logging configuration. CakeLog::config('debug', array( 'engine' => 'FileLog', 'types' => array('notice', 'info', 'debug'), 'file' => 'debug', )); CakeLog::config('error', array( 'engine' => 'FileLog', 'types' => array('warning', 'error', 'critical', 'alert', 'emergency'), 'file' => 'error', ));
その他の変更
- FormHelper::inputDefaults() に setter/getter を追加
- Authログインで他のモデルを含められるようになった
- CakeEmailで、日本語の従来の文字セットをサポート、Content-Typeにおける大文字の文字セットを使用できるように修正
- すべての関数のドキュメントブロックを改善、パラメータがどのタイプを受け付けるのかを明記した