🕶️

Docker + Phpstorm で Xdebug を使用する

2021/09/29に公開

Xdebugとは

デバッグ機能を提供してくれるPHPの拡張機能
2020年11月にv3がリリースされており、設定ファイル作成時などv2と異なる点があるため要注意!
https://xdebug.org/

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 を使用する際のヘルパー的な拡張機能なんかもある
https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc?hl=ja

Discussion