2013年3月21日木曜日

[cakephp 1.3] RSSを出力する単純な例

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

  4. データをRSS出力するためのビューファイル「{app}/views/posts/rss/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出力する単純な例を参考にしました。

[cakephp 1.3] JSON出力する単純な例

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

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

2013年3月18日月曜日

[cakephp 1.3] index.htmlで表示できるようにする。もしくは routes.phpにRouter::parseExtensions()を追加すると。

まず、config/routes.phpにRouter::parseExtensions();を追加します。
こうすると普通のページを表示したとき、$this->params['url']['ext']に'html'が必ず付加されるようになります。
どういうことになっているかというと、
http://example.com/top/view が http://example.com/top/view.html と同じ扱いになる。
普通 http://example.com/top/view.html とすると、function view.html(){}が無いのでエラーになるが、
Router::parseExtensions();を追加するとエラーにはならず、
http://example.com/top/view.html とすると function view(){} を実行する。