2014年5月22日木曜日

PHPのバックトレースを程よい文字列で取得

バックトレースを文字列で欲しい場合。
・debug_print_backtrace()では出力してしまうのでoutput bufferなどでの補足が必要で微妙。
・debug_backtrace(); は配列なので冗長。。もっとコンパクトにまとまってて欲しい。

と思ってたんだけど、PHPマニュアルのコメント欄でいいものを見つけた。
$e = new Exception();
print_r(str_replace('/path/to/code/', '', $e->getTraceAsString()));
from http://www.php.net/manual/ja/function.debug-print-backtrace.php#92542

これくらいの出力がちょうどいい。