CakeFest #3: July 9-12 2009 Berlin!

5.5 リクエストハンドリング

リクエストハンドラ(Request Handler)コンポーネントは、アプリケーションに対して行われる HTTP リクエストに関してさらなる情報を取得するために使用します。リクエストハンドラを使うことで、ファイルの拡張子が有効になっている時にクライアントが受け付けるコンテンツタイプの情報を得て適切なレイアウトを自動的に選択するだけでなく、 Ajax による接続であるかをコントローラに伝えることが出来ます。

デフォルトでは、 RequestHandler は多くの JavaScript ライブラリが使用する HTTP-X-Requested-With ヘッダに基づき、 Ajax によるリクエストであるかどうかを自動的に判定します。 Router::parseExtension() と一緒に使うと、 RequestHandler は自動的にリクエストのタイプにマッチしたレイアウトとビューのファイルに切り替えます。 さらに、リクエストされた拡張子と同じ名前のヘルパーが存在したら、 RequestHandler はコントローラの helpers 配列にそれを加えます。 最後に、 XML について説明します。もしコントローラに XML のデータが POST された場合、それは自動的に解析されモデルに保存できるデータの形式で Controller::data に割り当てられます。 リクエストハンドラを使用したい場合は、コントローラの $components 配列にそれを加えてください。

<?php
class WidgetController extends AppController {
    
	var $components = array('RequestHandler');
	
	// コントローラの残りのコードが次に続く
}
?>
  1. <?php
  2. class WidgetController extends AppController {
  3. var $components = array('RequestHandler');
  4. // コントローラの残りのコードが次に続く
  5. }
  6. ?>