— [cakephp]XMLを出力、配信する方法
Posted: Aug 5, 2009, 7:09 pm | Author: cyberryo | Category: Dialy | Tags: Cakephp, XML
cakephpでお手軽にxml配信。Flashの更新管理画面とかによく使う。
1.2でのRSS出力の仕組み(参考)
ControllerのComponentsにRequestHandlerを追加する。
var $components = array('RequestHandler');
route.phpに下記を追加する。
Router::parseExtensions();
するとrssやxmlのような拡張子に反応して、xml用のviewを見に行くようになる。
xml用のviewは[/app/view/コントローラ/xml/アクション.ctp]に用意する。
そしてレイアウトは[app/view/layout/xml/default.ctp]を下記な感じで用意。
e($xml->header()); echo $content_for_layout;
あとは、通常のviewと同じ感覚でxmlを作ると良いです。
もしxml階層を考えるのが面倒なら、
<entries> echo $xml->serialize($data); </entries>
こんな風にすると、一発でOKです。
あとはパース側で頑張るだけ!
最後に、[app_controller.php]に
function beforeFilter(){
if($this->RequestHandler->isXml()){
Configure::write('debug',0);
}
}
こういう風にしてあげるとデバッグ時にsqlが出てこないので便利。