PHPStorm + Xdebug3でデバッグする雑な設定

PHPStormで自作WordPressテーマの編集中にブレークポイントを使いたかったのでXdebug3の設定を行った。

Xdebugは2020年12月にXdebug 3のメジャーバージョンアップが行われ、いくつか 設定の方法がXdebug 2から変わっている ので注意が必要である。本記事はXdebug 3の内容となっている。

Xdebugを有効にするとパフォーマンスが落ちるので本番サーバでは設定すべきではない。自分はVagrant仮想環境でテーマを開発しているのでこの点は問題なく、さらに仮想環境へアクセスするのが基本自分のPCだけという前提の 雑な設定 となっている。なので内容を理解した上で流用していただきたい。

php.ini へ追加した設定は以下になる。

[xdebug]
; http://xdebug.org/docs/all_settings
xdebug.mode=debug
xdebug.discover_client_host=yes
xdebug.start_with_request=yes
xdebug.start_upon_error=yes
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1

接続するクライアントが自分のPCと限られているので xdebug.discover_client_host=yes にして xdebug.client_host の設定を入れていない。

自分は面倒くさがりなので xdebug.start_with_request=yes で自動で開始になるようにしている。デフォルトだとXdebugにデバッグの開始を依頼するHTTP情報を送るため、 ブラウザの拡張機能 等が必要になってくるが、面倒なのでそれは追加せずにこの運用にしている。

エラーがあったら止めてほしいので一応 xdebug.start_upon_error=yes も入れている。

var_dumpが途中で打ち切られるのが嫌なので xdebug.var_display_max_*-1 にしている。この設定の場合、循環参照があると出力が無限ループに入るのでvar_dumpする変数には注意が必要である。