スキップしてメイン コンテンツに移動

投稿

ラベル(Debug)が付いた投稿を表示しています

PHPで呼び出されたメソッド階層を取得

デバッグ目的で、メソッドの呼び出された階層を取得したいときがあると思います。 PHPでは、Exceptionを生成してException::getTraceAsStringメソッドでStack Traceを取得する方法が簡単です。 下記にコードを示します。 <?php function extractTrace($endLineNumber, $startLineNumber=1) { $stackTrace = (new \Exception())->getTraceAsString(); $start = strpos($stackTrace, "#".$startLineNumber); $end = strpos($stackTrace, "\n#".($endLineNumber+1)); if($start !== false || $end !== false) { return substr($stackTrace, $start, ($end - $start + 1) ?: strlen($stackTrace)); } return $stackTrace; } 簡単な解説です。 引数でStack Traceを取得する範囲を指定できるようにしています。 \Exceptionを生成した個所からStack Traceが生成されるので、Stack Traceの1行目の"#0"の部分を取り除くためにデフォルトでは、$startLineNumberを1に設定しています。 $stackTrace = (new \Exception())->getTraceAsString();の部分を外部から引数で渡すのもありですが、毎回同じ処理を書く必要があるので、extractTrace関数内部に入れてあります。

Windows上で開発する際のちょっとした便利ツール

画像編集 GLab Bumy Paint Gimp AzPainter : かなり高機能な画像処理ソフトウェアです。 2011/12/25 追記: 作者様のサイトによると開発は中止したようです。残念。ソフトの公開(ダウンロード)は続けるようです。 JTrim : フリーでこれだけ対応しているソフトウェアは珍しいと思います。すばらしい! Logo Shader : 様々な質感のロゴを作成できるソフトウェアです。お勧め! Tex TeX Wiki 日本語のTexの解説サイトと言ったらここしかないでしょう! デバッグ DebugView テキスト系ファイルの差分表示 WinMerge Rekisa Vim にも差分の表示機能があります。 Not classified yet http://www.deepamehta.de/ CCFinder FREE PDF Printer : 高機能PDFライターソフトウェア http://www.metaseq.net/ : 3D Modeling Software 自動ブロック化・通信最適化ライブラリ ABCLib FFMpeg http://www.fraps.com/ : Direct X Capture SVG Viewer (Adobe)