院生エンジニアのにっき

  • Change style to Blue
  • Change style to Red
  • Change style to Green
  • Change style to Pink

pr関数(preタグ付きdump関数)をもうちょっと便利に   2008-11-14

CakePHPの標準関数のpr($vars)は

  1. function pr($vars) {
  2.   echo '<pre>';
  3.   print_r($vars);
  4.   echo '</pre>';
  5. }

な感じの関数でとても重宝しています。

ただ、pr関数を使いまくっていると「どこで呼び出したっけ?」というのが分からなくなって探す・・・といったことがたまに起きてしまいます。

ってわけでpr関数の呼び出しもとの行数も一緒に出力する新版を書いてみました。

  1. function pr($vars) {
  2.   $e = new Exception();
  3.   $trace = $e->getTrace();
  4.   $trace = array_shift($trace);
  5.  
  6.   echo "<pre>";
  7.   echo "<strong>{$trace[0]['file']}({$trace[0]['line']}</strong>\n";
  8.   print_r($vars);
  9.   echo "</pre>";
  10. }

これで「どこのprだ??」と迷うことが無くなります!(実際のCakePHPではDebugLevelによって出力を切り分ける処理があります)


  1. pr(0); //test.php
  2.  
  3. //C:\hoge\test.php(1)
  4. //0

・・・CakePHPのDebugTraceの中身を見ればもっと高機能にできるはず・・・?


コメントを書く