CakePHP 2.1.0 のリリース

元記事はこちら
By lorenzo

ポピュラーなPHPフレームワークの最新バージョンをお試しください。ステキなサプライズもあります。


CakePHPコアチームはCakePHP 2.1.0 安定版が入手可能になったことをお知らせいたします。さきのリリースでもお知らせしたとおり、2.0.6に対する完全な後方互換性を保っており、アプリケーションをアップデートしてこのリリースに含められた多くの新機能や優位性を活かせます。2.0系ではこれ以降新しいバージョンはリリースされませんし、将来のバグフィックス版は2.1系に対して行われます。

先のリリース候補版以降、最終リリースまでには合計で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 と関連機能(saveManysaveAssociatedvalidateAssociated …) は新しくオプションパラメータ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]
  • 変更点の一覧を見る [2]

リンク

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です