開発中はdebug = 2 とかで行うと思うんですが、
いちいちデバッグや新機能追加の時に core.php変更するのもめんどくさいので、
リモートと、クライアントに応じて debug 値を動的に変更するようにちょっとだけいじります。
core.php内の $debug のあたり。
Configure::write('debug', 0); if(isset($_SERVER)){ if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1' && ereg( 'Firefox' , $_SERVER['HTTP_USER_AGENT'])){ //ローカルホストからの場合デバッグモード Configure::write('debug', 2); }; if($_SERVER['REMOTE_ADDR'] == '192.168.***.***' && ereg( 'Firefox' , $_SERVER['HTTP_USER_AGENT'])){ //ローカルホストからの場合デバッグモード Configure::write('debug', 2); } };
3行目の *** の部分はリモート開発マシンのIPに置き換え。
これで、ローカルマシン(or リモート開発マシン)からのアクセス 且つ AGENTにFirefoxが含まれる場合のみdebugが 2 になります。簡易的ですが、結構つかえます。というか使ってます。
(開発はFirefox 動作テストはIEとかでやりたいときに便利)
※ただし たとえば AjaxでJSONの生データを吐き出すアクションの時は、
debug=2 だと、デバッグ情報が出力されてしまい、受信出来ません。ハマります。というかハマりました。
対策としては $this->layout=’json’ ; のときは beforeRender で
function beforeRender() { if ($this->layout == 'json') { Configure::write('debug', 0); } else { parent::beforeRender(); } }
とか入れておくといいかな。
まぁサービスインしたときはこれらの記述は全部消さないと危険。
おーすげー。
天才です。