phpのデバッグ環境を整える(XDebug)
公開日| 2009年04月07日 | コメントはまだありません。
カテゴリー:php |
概要 : php言語を使った開発を行う際に、Visual StudioのようなIDE環境を求められないことが多い。Eclipseなどの登場で、phpの環境は、当初に比べれば、随分、良くなってきた。 今回は、フリーのデバッグ環境として、Windowsで簡単にデバッグの情報量を増やせるXDebugについて、簡単な環境設定とデバッグ情報採取について解説してみる。
ダウンロード:http://www.xdebug.org/
STEP.1 環境を整える
環境を整える上で、既にWindows上でApache+phpでWEBの環境が整っているものとして話をすすめる。- 現在のphpのバージョンを確認する
上記のソースイメージをデバッグ環境(WEBサーバのルートディレクトリ)へコピーし、WEB経由でアクセスするとphpのバージョンが確認できる。1
<?php phpinfo(); ?>

- phpのバージョンにあったXDebugを以下のURLからダウンロードする
http://www.xdebug.org/download.php
※Windows binaries: 5.2 VC6 Non-thread-safe, 5.2 VC6, 5.3 VC6 Non-thread-safe, 5.3 VC6, 5.3 VC9 Non-thread-safe, 5.3 VC9
などと記述のある中から、phpのバージョンが例えば5.2.xxだったとすれば、"5.2 VC6"をダウンロードすれば間違いないだろう。
VC6/VC9は、Visual C++のバージョンで、実際にバイナリファイル(dll)を作成するのに用いたバージョン。
VC6の環境は、XPで標準に入っているが、VC9は、自身でインストールしていなければ動作しないこともあるので注意。
- ダウンロードしたファイルをphp環境に設定する
おそらくは、
php_xdebug-xxxxxxx.dll
のような名前のファイルをダウンロードしていることと思う。
- このファイルをphpの環境のextentionのディレクトリへコピーする
例) copy php_xdebug-xxxxxxx.dll c:\php\\ext\.
- php.iniを書き換える
php.iniは、通常、phpにインストール直下にある。
"extension=xxxxx.dll"などの記述の後に、以下の記述を追記し、保存する。
例) zend_extension_ts="C:\PHP\ext\php_xdebug-xxxxxxx.dll"
※必ず、フルパスで指定する。
- Apacheをリスタートする
- STEP.1で使ったphpのバージョン確認のphpファイルをWEB経由でアクセスする

このようにXDebugの表記があれば、正しくインストールされたことがわかる。
もし、上記の表示が出力されない場合は、STEP.1からの手順に誤りがないか、再度、確認してみよう。
- このファイルをphpの環境のextentionのディレクトリへコピーする
STEP.2 デバッグ情報を採取してみる
実際に、phpでワーニングメッセージやエラーメッセージが出力される場合、以下のようなメッセージに変わる。
コールスタックをきれいに表にまとめてくれる。
また、WEBのデバッグでやっかいなのが、内部でループしてブラウザ画面にデバッグ情報を出しにくい場合がある。
そんなとき、XDebugでは、以下のようなAPIを使って、簡単にデバッグ情報を吐き出すことができる。
1 2 3 4 | $item = $menu-->getItem($itemid); xdebug_debug_zval('itemid'); xdebug_debug_zval('item'); |
上記では、$itemidと$itemのワークエリアが何かを吐き出してくれる。
これを実行すると以下のような文字が出力され、デバッグを容易にしてくれる。
itemid: (refcount=2, is_ref=0),string '65' (length=2) item: (refcount=1, is_ref=0),null

