元記事はこちら。
CakePHPコアチームはCakePHP 2.5.0が入手可能になったことをお知らせいたします。RC2のリリース後、いくつかの変更が行われました。
- 2.4.9で行われた FormHelper::postLink() の修正がマージされた
- 多くのAPIドキュメントの改善
- TextHelper::tail() の修正
- フィクスチャ使用時に SQLServer::describe() が失敗しなくなった
- Authenticationアダプタは、異なるパスワードハッシュ方式のために別名を付けて同じアダプタを何度も呼び出せるようになった
- Redisキャッシュエンジンがunix_socketをサポートするようになった
- PaginatorComponentは現在のページングレコード上限よりも少ないレコードしか存在しない場合にfind(‘count’) を実行しなくなった
変更点の詳細についてはchangelogs(英語)を参照してください。
新機能のハイライト
Cache::remember()
このメソッドにより、キャッシュ操作のリードスルーを実装できるようになります。キャッシュキーを渡すと、有効なキャッシュデータを探します。見つからない場合は、コールバックメソッドを実行して戻り値をキャッシュキーのもとに保持します。
キャッシュが失われているかチェックする反復したコードを削減するのに有用です。
Memcachedサポートの改善
新しいキャッシュエンジンが追加され、キーバリュー型データベースであるphp拡張のext/memcachedの速度とサポートが改善されました。新しいアダプタの導入のため、古いMemcacheエンジンを非推奨とし、3.0で削除することにしました。
CompletionShell
bashやzshのような、コマンド補完をサポートするシェル環境のために、tabキーでcakeシェルのコマンドやオプションを補完してくれる機能を提供してきました。どんなシェルが有効か、どんなオプションがあるのかと疑問に思うときに活用できるでしょう。セットアップについてはドキュメントを参照してください。
Security::encrypt() と AES暗号化クッキー
ユーザーに変更されたくないデータをクッキーに保存するやむを得ない事情がある場合、AES暗号化クッキーを利用できます。Securityクラスが提供する新しいAES-256暗号を使用して、クッキー改ざんのような攻撃を避けることができます。
Consistent priorities in global and local events
これまでのCakePHPのバージョンでの制限は、グローバルのEventManagerにアタッチされたリスナーは優先順位にかかわらず他のローカルリスナーより前に呼び出されていました。CakePHP2.5ではグローバルまたはローカルのイベントリスナーを優先度キューに統合します。1つの統合された優先度キューで、より複雑で完全なアスペクト指向のプログラミングを実装できます。
CakePHP 2.5.0 は安定版になりました。2.5系は2.x系の一連のリリースとAPI互換性のあるアップグレードです。移行ガイド(英語)を読んで、いくつかの非推奨の機能について考慮してください。2.x系の一連のリリースで、API互換性のあるリリースとして計画されている2.6.0の開発はすでに始まっています。
コミット、チケット、ドキュメントの編集ほか、このフレームワークに貢献してくれるすべての皆さんに深謝します。CakePHPはコミュニティ全体のプロジェクトとしてみなさんの貢献によって継続できるのです。