| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
基本的な使用法基本的な使用法 –
関数の引数や返り値などの単純なトレース
概要traceArguments() を使用して、関数の引数をトレースします。 トレースをする際に、関数の引数を traceArguments() に渡す必要はありません。その関数が他の関数をコールしない場合、 あるいはその関数がコールする関数はトレースしないという場合については traceArguments() は使用しないこともあります。 traceVariables() を使用して、関数内の変数をトレースします。 トレースする変数を traceVariables() の引数として渡す必要があります。 traceVariables() は、 ウォッチ対象の変数の値が変わるたびにコールされることになります。 traceReturn() を使用して、関数の返り値をトレースします。 トレースする返り値を traceReturn() の引数として渡す必要があります。 putTrace() を使用して、 トレース結果を標準出力やファイルに書き出します。 PHP_FunctionCallTracer の使用法この例では、 package.php の つのクラスのメソッドをトレースしてみます。 このパッケージは trace.php というアプリケーションで用いられており、 トレース結果は trace.txt に保存します。 トレースを作成するには #php trace.php を実行します。 package.php パッケージ PHP_FunctionCallTracer がロードされているかどうかを class_exists('PHP_FunctionCallTracer', false) で確認するのは必須ではありません。 これは、トレース用のメソッドをコードの中に残しておく場合にのみ有用です。 こうしておけば、PHP_FunctionCallTracer がロードされている場合にのみトレースメソッドを実行するようになります。
<?php アプリケーション trace.php
<?php トレース結果 trace.txt Array ( [php_uname] => Windows NT mybox 5.1 build 2600 [date] => Friday, 03-Aug-07 09:17:30 UTC [calls] => Array ( [0] => Array ( [call] => Array ( [file] => trace.php [line] => 20 [function] => geometry->circle ) [in] => Array ( [file] => package.php [line] => 55 [args] => Array ( [0] => 2 ) ) [out] => Array ( [file] => package.php [line] => 61 [args] => Array ( [0] => 12.56 [1] => 6.28 ) ) ) [1] => Array ( [call] => Array ( [file] => package.php [line] => 58 [function] => math::prod ) [in] => Array ( [file] => package.php [line] => 22 [args] => Array ( [0] => 2 [1] => 6.28 ) ) [out] => Array ( [file] => package.php [line] => 22 [args] => Array ( [0] => 12.56 ) ) ) [2] => Array ( [call] => Array ( [file] => trace.php [line] => 21 [function] => geometry->disk ) [in] => Array ( [file] => package.php [line] => 71 [args] => Array ( [0] => 3 ) ) [watches] => Array ( [0] => Array ( [file] => package.php [line] => 75 [args] => Array ( [0] => 9 [1] => 3.14 ) ) ) [out] => Array ( [file] => package.php [line] => 80 [args] => Array ( [0] => 28.26 ) ) ) [3] => Array ( [call] => Array ( [file] => package.php [line] => 73 [function] => math::square ) [in] => Array ( [file] => package.php [line] => 35 [args] => Array ( [0] => 3 ) ) [out] => Array ( [file] => package.php [line] => 40 [args] => Array ( [0] => 9 ) ) ) [4] => Array ( [call] => Array ( [file] => package.php [line] => 37 [function] => math::prod ) [in] => Array ( [file] => package.php [line] => 22 [args] => Array ( [0] => 3 [1] => 3 ) ) [out] => Array ( [file] => package.php [line] => 22 [args] => Array ( [0] => 9 ) ) ) [5] => Array ( [call] => Array ( [file] => package.php [line] => 77 [function] => math::prod ) [in] => Array ( [file] => package.php [line] => 22 [args] => Array ( [0] => 9 [1] => 3.14 ) ) [out] => Array ( [file] => package.php [line] => 22 [args] => Array ( [0] => 28.26 ) ) ) ) [objects] => Array ( [0] => geometry Object ( [pi:private] => 3.14 ) [2] => same as #0 ) ) |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「基本的な使用法」をGoogle検索
|