debug

sample

code


debug()

説明

  • cake/basics.php で定義されている debug() 関数
  • 参考: http://book.cakephp.org/ja/view/1190/Basic-Debugging
  • 使用法
    debug($var = false, $showHtml = false, $showFrom = true)
      $var: 表示したい変数など
      $showHtml: '<'などを'&lt;'などに変換するかどうか
      $showFrom: どのファイルの何行目で呼ばれたかを表示するかどうか
    
  • Configure::read('debug') が 0 より大きい値に設定されていないと表示されません。

ソースコード

$foo = array('bar<b>b</b>');
debug($foo);

実行結果

app/views/debug/index.ctp (line 61)
Array
(
    [0] => bar<b>b</b>
)



pr()

説明

  • cake/basics.php で定義されている pr() 関数
  • print_r()の出力結果をpreタグで囲んで出力する。
  • 使用法
    pr($var)
      $var: 表示したい変数など
    
  • '<'などはエスケープされません。
  • Configure::read('debug') が 0 より大きい値に設定されていないと表示されません。

ソースコード

$foo = array('bar<b>b</b>');
pr($foo);

実行結果

Array
(
    [0] => barb
)


Debugger::dump()

説明

  • cake/libs/debugger.php で定義されている dump() 関数
  • 出力する変数のタイプに合わせて適切に出力される。
  • 使用法
    dump($var)
      $var: 表示したい変数など
    
  • Configure::read('debug') が 0 より大きい値に設定されていないと表示されません。
  • Debugger::log()を使えば、スタックトレースと併せて同様のものが app/tmp/logs/debug.log に出力されます。

ソースコード

$foo = array('bar<b>b</b>');
Debugger::dump($foo);

実行結果

array(
	"bar<b>b</b>"
)



Debugger::trace()

説明

  • cake/libs/debugger.php で定義されている trace() 関数
  • その時点でのスタックトレースを返します。
  • 使用法
    trace($options)
      $options: 表示フォーマットの定義など
    
  • Configure::read('debug') が 0 より大きい値に設定されていないと表示されずに終了します。

ソースコード

pr( Debugger::trace() );

実行結果

include - APP/views/debug/index.ctp, line 164
View::_render() - CORE/cake/libs/view/view.php, line 723
View::render() - CORE/cake/libs/view/view.php, line 419
Controller::render() - CORE/cake/libs/controller/controller.php, line 911
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 207
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - APP/webroot/index.php, line 83


Debugger::excerpt

説明

  • cake/libs/debugger.php で定義されている excerpt() 関数
  • ファイルの一部を抜粋して表示します。
  • 使用法
    excerpt($file, $line, $context)
      $file: ファイルの絶対パス
      $line: 何行目を抜粋するか
      $context: 指定した行の前後何行を抜粋するか
    
  • Configure::read('debug') が 0 より大きい値に設定されていないと表示されずに終了します。

ソースコード

pr( Debugger::excerpt(ROOT.DS.LIBS.'debugger.php', 450, 2) );

実行結果

Array
(
    [0] =>  * @link http://book.cakephp.org/view/1191/Using-the-Debugger-Class
    [1] =>  */
    [2] =>     function excerpt($file, $line, $context = 2) {
    [3] =>         $data = $lines = array();
    [4] =>         if (!file_exists($file)) {
)