2013年4月4日木曜日

[cakphp 1.3] XMLをを出力する単純な例

  1. 拡張子でリソースの種類を判断できるよう、「{app}/config/routes.php」に Router::parseExtensions()を追加します。
  2. xml用のデフォルトレイアウトビューファイル「{app}/views/layouts/xml/default.ctp」を追加します。
  3. cake bake project すると、{app}/views/layouts に email,js,json,rss,xmlのフォルダーが 自動的に作成されるので必要はないがzipを展開しただけなら無いので作成が必要。

  4. データをXML出力するためのビューファイル「{app}/views/posts/xml/index.ctp」を作成します。
  5. コントローラーにコンポーネントRequestHandlerを追加します。
  6. function beforeFilter()を追加します。 rssの時にdebug設定が0でないとContent-Typeがtext/htmlになるようなので、 debug設定を0にしてJSONのときのContent-Typeがapplication/jsonになるようにします。 (4.と5.はapp_controller.phpに設定してしまってもよいかもしれません)
  7. function index()にRSS出力するデータをセットします。
CakePHP(1.3)でJSON出力する単純な例を参考にしました。