CakePHP 2.1-α版リリース

元記事はこちら
By lorenzo

CakePHPの次期バージョンがα版になったことをお知らせします。このバージョンではCakePHPをとても簡単かつ面白みのあるフレームワークにするための幾つかの機能が追加されています。コンテントタイプ固有のページ、改善されたエラーメッセージ、ビューブロック、新しいコールバックシステムなどチェックしてみてください。


CakePHPコアチームはCakePHP 2.1.0 アルファが入手可能になったことをお知らせいたします。バージョン2.1は2.0.x系と完全な後方互換性があります。これは2.0ですでにアプリケーションを制作していたり、アップグレードを予定しているなら、すぐに安全に2.1に移行・使用でき、アップグレードに伴う追加作業は必要ないということです。2.1に含められた幾つかの拡張機能はとても素晴らしいものです。完成に向けた残作業を一生懸命行いたいと思います。

CakePHP2.1には、合計で230以上のコミットと15の新機能・拡張が行われました。完全なリストはchangelogページで閲覧できます。以下はこのバージョンのハイライトです:

コンテントタイプビュー

2つの新しいタイプのビュークラスが追加されました。JsonViewXmlViewにより、XMLとJSONのビューの作成がより簡単になります。

アプリケーション内でRequestHandlerComponentを利用可能にし、xmlもしくはjson拡張子を利用可能にすることで、自動的にこの新しいクラスの影響力を体感できます。データビューの生成には2つの方法があります。ひとつは_serializeキーを使用する方法、もうひとつは通常のビューファイルを作成する方法です。

これにより、コンテントタイプ別のページをとっても簡単に作成でき、自動的に正しいmimetypeのエラーレスポンスが行われます。

ビューの拡張

ビュークラスに view/element/layout を他のファイルを使用してラップまたは拡張する新しい方式を導入しました。これは「サブレイアウト」の考え方を導入したもので、ビューをこれまで以上に柔軟にし、ビューブロックを使用して実装されています。

ビューブロックはビューで区切りやブロックを作成する柔軟性のある方法です。ブロックは$scripts_for_layout$content_for_layoutを置き換える堅牢で柔軟性のあるAPIです。

たとえばブロックはサイドバーやアセットをロードするレイアウトの上部/下部領域などを実装するのに最適です。

Plugin.view

すべての レイアウト/ビュー/エレメントの名前はPlugin.viewを使用してプラグインビューを示す方法が推奨されます。View::element()pluginオプションを指定する方法は非推奨です。

エラーの改善

debug() 関数の出力がきれいになり読みやすくなりました。例外ページではインタラクティブなスタックトレースを追加しています。各トレースポイントをクリックしてその時点での変数の状態を調べることができます。先に述べたとおり、CakePHPはコンテントタイプ固有のエラーページを返します。

汎用イベントシステム

新しい汎用イベントシステムが構築され、コールバックが割り当てられる方式に取って代わりました。アプリケーションのコードに変更の必要はありません。自分のイベントを割り当て、自由にコールバックにアタッチできるようになりました。プラグイン内部のコミュニケーションや、クラスとイベントを分離するのに便利です。

テスト

$test以外にもデータソース内にフィクスチャを作成できます。ClassRegistryまたは他のデータソースを使用してロードされたモデルはtest_月のデータソース名を取得します。(たとえば、データソースがmasterの場合は、テストスイートはtest_masterの使用を試みます。)

新しいTestShellが追加されました。ユニットテスト実行中のキー入力要求が減っており、UIベースのファイルパスを提供します。


Console/cake test app/Model/Post.php 
Console/cake test app/Controller/PostsController.php

ヘルパー

  • エレメント内で<!--nocache-->タグが正しく動作するようになった
  • フォームヘルパーはdisabledフィールドを安全なフィールドハッシュから除外するようになった。SecurityComponentと連携してdisabledフィールドの入力を容易にする。
  • ラジオボタンの入力でbetweenオプションが使用されるときの動作が変わる。betweenの値はlegendと最初の入力要素の間に配置される。
  • チェックボックスの入力でhiddenFieldオプションに0だけでなく固有の値(’N’など)を指定できるようになった
  • 日付と時刻の入力でfor属性は最初に生成された入力を反映する。これによりfor属性は、生成された日付と時刻の入力を変更するようになる。

コールバックの優先順位

ヘルパー、ビヘイビア、コンポーネントのコールバックは優先順位をサポートするようになり、コールバックが呼ばれる際の優先順位を簡単に管理できるようになりました。

以降数時間2.1のオンラインドキュメントのために作業したのち、残りの機能の作成をすぐに終わらせる予定です。パッチやドキュメントの変更や新しいチケットによって成長し続けるCakePHPコミュニティに感謝しています。あなたがいなければ、CakePHPは存在しません。

訳注:技術検証が追いついていないので、ミスがあるかもしれません。後ほど修正する可能性があります。あしからずご了承ください。

コメントを残す

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