[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が出てこないので便利。