CakePHP

CakePHP1.2 XMLサービス開発時のdebug表示の抑制

CakePHPのdebugでSQLの出力は本当にありがたい。SQLに精通していない自分は、いろいろと書き方を勉強させてもらっている。

と ころでRESTなサービスを用意しjQueryを利用してテストページを試したところ、要素の選択がどうもうまく行かない。どうやらこのありがたいはずの debug表示出力がよろしくないようで、この出力を抑えたくなった。「core.php」の「debug」を「0」にすれば良いのだが、まだ開発中なの でコントローラからできれば便利である。

流石はCakePHP、次のようにしてクリアでした。

function beforeFilter() {
  if ($this->RequestHandler->isXml()) {
    Configure::write('debug', 0);
  }
}

CakePHPのユーザフォーラムに「ajaxとhtml併用の際のDEBUG表示をどうするか」の記事で、同じように抑制の方法が載っていたので試したところ、出力データ最後の処理時間の出力だけは残ってしまった。他に方法がないか検索していたところ、Chris氏の「CakePHP1.2のWebサービスは本当に簡単?まじで簡単さ!」の記事のコメントが目についたので試したらOKでした。

2008-01-10
「isXml()」が「xxx.xml」で実行されなくてもtrueを戻すようだ。「isAjax()」を利用するとAjaxで呼び出されたときだけ、正しくtrueが戻された。今のところ、こちらを利用するようにしている。