リクエストハンドリング

リクエストの種類に応じて処理内容をコントロールする事の出来るコンポーネント。HTTPメソッドや許容するコンテンツタイプ(ACCEPT)の判定、レスポンス形式の指定などを行う事が出来ます。


例えばRouter::parseExtension() と一緒に使うと、リクエストの拡張子に応じて自動的にRSSやXMLなどの形式でレスポンスを出力させる事が出来ます。アクション内のコードではリクエストの種類を意識する必要はありません。

http://www.example.com/index.rss
http://www.example.com/index.xml
http://www.example.com/index.json

リクエストの判断材料

  • リクエストURLの拡張子(Router::parseExtensionと併用)
  • HTTP-X-Requested-Withヘッダが'XMLHttpRequest'


Ajaxリクエストに対するレスポンスのContent-typeは'text/html */*'です。

使用方法

コントローラの$components属性に'RequestHandler'をセットします。

class PostsController extends AppController {
    
	var $components = array('RequestHandler');

}

RssHelper-で-RSS-フィードを生成する

CakePHP Note (v1.3)

Index