| | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | 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検索
|