🕶️
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