🕶️
Docker + Phpstorm で Xdebug を使用する
Xdebugとは
デバッグ機能を提供してくれるPHPの拡張機能
2020年11月にv3がリリースされており、設定ファイル作成時などv2と異なる点があるため要注意!
Xdebugでできること
- 実行中のスクリプトとをIDEまたはエディターでステップ実行
- var_dumpの整形強化
- プログラム実行時の呼び出された関数等の情報トレース
- PHPのパフォーマンス分析
- PHPUnitでテスト実行時のコードカバレッジ出力
導入
PHPの拡張機能のためPHPと同じところにインストールする
# PHP Dockerfile
RUN pecl install xdebug && docker-php-ext-enable xdebug
設定ファイルはphp.iniに追加する
# php.ini
[xdebug]
xdebug.mode = develop,coverage,debug,gcstats,profile,trace
xdebug.start_with_request = yes
xdebug.log="/tmp/xdebug.log"
xdebug.client_port=9001
xdebug.client_host=host.docker.internal
xdebug.idekey=phpstorm
Phpstorm の設定
Preference > PHP > Debug の Debug Port を設定

Preference > PHP > Server でサーバーの設定

Run/Debug Configrations > + > PHP Remote Debug よりデバッグのConfigを設定

起動
Configで作成した設定を選択、右上のデバッグボタンとリッスンボタンでデバッグを有効化

デバッグしたいコードの左側をクリックしてブレイクポイントを設定

ブラウザをリロードすると、ブレイクポイントで処理が止まったら無事起動🎉

おまけ
Chrome で Xdebug を使用する際のヘルパー的な拡張機能なんかもある
Discussion