ポピュラーなPHPフレームワークの最新バージョンをお試しください。ステキなサプライズもあります。
先のリリース候補版以降、最終リリースまでには合計で90以上のコミットといくつかのマイナーな機能拡張が行われました。完全な完全なリストはchangelogページで閲覧できます。以下はこのバージョンのハイライトの概要です:
コンテントタイプビュー
CakePHPに2つの新しいビュークラスが追加されました。新しいJsonView
と XmlView
により、XMLとJSONのビュー生成がより簡単になります。
ビューの拡張
ビュークラスはビュー・エレメント・レイアウトファイルを他のファイルによりラップもしくは拡張できるよう新しいメソッドが追加されました。
Plugin.view
すべてのレイアウト・ビュー・エレメントの名前はプラグインのビューを指定するのにPlugin.view
を使用できるようになりました。View::element()
のplugin
オプションは非推奨になりました。
エラーの改善
debug()
関数の出力はよりクリーンになり、読みやすくなりました。例外ページではインタラクティブなスタックトレースも追加されました。
汎用イベントシステム
コールバックを割り当てる方法に取って代わり、新しい汎用イベントシステムが構築されました。自分のイベントを割り当てたり、コールバックを関連付けたりできます。
テスト
データソース中のフィクスチャが$test
以外でも作成できるようになりました。
新しいTestShellが追加されました。ユニットテスト時のタイピング量を減らし、UIベースのファイルパスを提供します。
Console/cake test app/Model/Post.php
Console/cake test app/Controller/PostsController.php
コールバックの優先順位
ヘルパー、ビヘイビア、コンポーネントのコールバックは優先順位をサポートするようになり、簡単にコールバックの発動順序を制御できます。
ThemeViewは非推奨に
ThemeView
の機能をView
クラスに併合しました。テーマサポートが簡便になります。
HTTPキャッシュの改善
HTTPキャッシュのチューニングのために、CakeResponse
クラスに新しいメソッドがいくつか追加されました。RequestHandlerComponent
はクライアントのキャッシュ保持を検知した場合にはレンダリングを停止します。
大半のヘルパーはユーティリティライブラリに変換
CakeTime
や CakeNumber
のようなヘルパーをライブラリへとリファクタリングしました。ライブラリはApp::uses('String', 'Utility')
のように簡単にインポートでき、String::truncate($text);
のように使用できます。
ディープセーブ
saveAll
と関連機能(saveMany
, saveAssociated
, validateAssociated
…) は新しくオプションパラメータdeep
を受け入れます。たとえばAuthor(著者)、Posts(投稿記事)、関連するコメントをセーブしたい場合には一度の呼び出しで実行できます。各メソッドではセーブ可能なフィールドの一覧としてfieldList
オプションも使用できます。
新しいACLエンジン
古き良きデータベースACLエンジンに加えて、新しく設定ファイルベースの方式を追加しました。動的な権限管理にデータベースを必要としないスピーディな権限チェックシステムを望む場合の最高の選択肢になり得ます。
HtmlHelper::media()
HTML5互換のaudio、videoタグを生成するため、Htmlヘルパーにはmedia()
メソッドが実装されました。
その他の改善と変更
- PHP のバグ #44251 と #45748 の影響で、PHPの最低バージョンが5.2.8に変更
- Paginatorヘルパーは現在(current)のページリンクのデフォルトクラスを指定するオプションを受け入れる
- ビューが存在しない場合に例外をスローするように拡張
- 絶対パスを使用するビュー(Viewフォルダからの相対パス)を使用できるように拡張
- home.ctpやデフォルトレイアウトなどのほとんどのCakeコアのビューファイルはappフォルダに移動
- プリペアドステートメントを使用したクエリパラメータはデータベースログに出力
- トランザクションコマンド(BEGIN, COMMIT, ROLLBACK)はデータベースログに出力
Set::nest()
とSet::get()
の追加。
Set::nest()
は配列キーを参照としてプレーン配列からネスト配列を生成するために使用される。
Set::get()
はドット記法の配列の値にアクセスするために使用される。- デフォルトルートクラスの取得/設定のための
Router::defaultRouteClass()
の追加。全般のデフォルト設定を簡単に行なえ、スラグルーティングや国際化にも便利 I18n::translate()
に $language パラメータを追加。メソッドが.poファイルを読むことができ、独自の翻訳インターフェースの作成に有用。- 認証オブジェクトは、ユーザ検索クエリの返却データの上限を設定するrecursive(再帰)オプションを受け取るようになった。
<!--nocache-->
タグはエレメント内で正しく動作するようになった- Formヘルパーはセキュアフィールドハッシュから無効化されたフィールドを省略。
SecurityComponent
とも協働し、無効化された入力フォームの作成が容易になった。 between
オプションがラジオボタンで使用される際の挙動が変更された。between
の値はlegendと最初の入力要素との間に配置される。- チェックボックス入力の
hiddenField
オプションに、ただ0とだけではなく’N’のような特定の値を設定できるようになった。 - 日付と時刻の入力の
for
属性は最初に生成された入力フォームに反映されるようになった。これにより生成されたdatetime入力はfor
属性の値となる。 - Mediaビュー使用時の
extension
の値はオプションとなった。指定しない場合はid
(別名:ファイル名)から抽出される。
とっておきのクールなサプライズのひとつは、CakePHPドメインの新しいサイトです。プラグインのリポジトリサイト[3]はCakePHPを使用したエクステンションやプラグインやアプリケーションの参照と検索をワンストップで行えることを目指しています。http://plugins.cakephp.orgをチェックしてみてください。
さらにCakePHPのWebサイト[4]とオンラインマニュアル[5]の大きなモデルチェンジを行いました。スマートフォンやタブレットなどのより小さな画面サイズにも適応できるようリキッドレイアウトを取り入れています。新しい外観に合うように他のサイトも鋭意調整中です。
CakePHPのデプロイをより簡単にするために、新しくPEARチャネル[6]を作成しました。最新のセキュリティフィックスや拡張の際に更新が簡単になるでしょう。Webサイトにアクセスして手順を実施してください。
いつもながら、パッチやドキュメントの変更や新しいチケットをくれるフレンドリーなCakePHPコミュニティに感謝しています。あなたがいなければ、CakePHPは存在しません。
リンク
- [1] http://github.com/cakephp/cakephp
- [2] http://cakephp.org/changelogs/2.1.0
- [3] http://plugins.cakephp.org
- [4] http://cakephp.org/
- [5] http://book.cakephp.org/
- [6] http://pear.cakephp.org/