WindowsのPHPにXdebugを入れてみた


書いた時点のバージョン:php_xdebug-2.0.0rc3-5.2.1.dll

VisualStudioなどでの開発に慣れていると,
初期状態のPHPでデバッグが時の情報量の少なさにイライラしてきます*1
多分プロになると色々なツールを駆使して快適な環境を構築していたりするのだと思いますが,
私はあまり詳しくないので目に付いた物から試していくしかなさそうです.
今回のxdebugは,導入するだけでスクリプトがこけた時のエラー表示をわかりやすくしてくれるPHPのモジュールです.
導入した後に適切に設定したりツールを導入するともっと快適になるらしいですが,よくわからなかったのでここでは書いていません.

公式サイト
公式サイトのインストール方法説明ページ
公式ドキュメント

参考:Do You PHP? – Xdebugを導入してみる – JavaのStackTraceが欲しい!

*1 : デバッグは,元々イライラしてくるものですが

インストール

php.iniに次の行を追記.

; extension_dirが設定されていることを前提にしてます
; ファイル名はダウンロードしたdllにあわせて.
extension="php_xdebug-2.0.0rc3-5.2.1.dll"

zend_extension_tsを指定するとする情報は,古いみたいです.動きませんでした.

完了したらApacheを再起動.
phpinfo();で次のような表示がされていれば設定はOK
xdebug_setting.png

設定

設定はphp.iniに書き足していきます.
参考ページを参考に,この二つを入れてみました.
スクリプトがこけた時にこれらの中身が表示されるようになります.
手軽に効果が実感できるので書いておくといいかも.

xdebug.dump.GET=*
xdebug.dump.POST=*

公式ドキュメントによると,このタイプのでは次のバリエーションがあるらしいです.

xdebug.dump.COOKIE [string] (default: Empty)
xdebug.dump.ENV [string] (default: Empty)
xdebug.dump.FILES [string] (default: Empty)
xdebug.dump.GET [string] (default: Empty)
xdebug.dump.POST [string] (default: Empty)
xdebug.dump.REQUEST [string] (default: Empty)
xdebug.dump.SERVER [string] (default: Empty)
xdebug.dump.SESSION [string] (default: Empty)

これ,こけた時にしか表示できないのはもったいないので,
スクリプトの中から次の関数を呼び出せば任意のタイミングで書き出せます.

xdebug_dump_superglobals();

まとめ

入れたばっかりなのでまとめようが(汗
こういうのは,しばらく使っているとじわじわと効果が実感できるものなので,そのうちまた書くかも.
変数のダンプもできますが,こちらはdBugの方が綺麗で見易いので使い分けがいいですね.
dBugと違ってこちらは,ソースコードに手を加える必要が基本的に無いのが利点でもありそう.
こういうのってある無しじゃ全然違いますよねえ.
もっと知れ渡っていてもいいような.いや私の耳が遠いだけか.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>