🐙

Laravel SailでXdebugを有効にする

2022/10/27に公開約3,100字

前提

  • Windows10以上
  • WSL2有効

他の環境でもLaravel公式ドキュメントをよく読めば、この記事を応用してXdebugが使えると思います。(きっとできる!!)

概要

ほぼ公式に書いてある!Laravel Sail便利ですね✨
https://readouble.com/laravel/9.x/ja/sail.html#debugging-with-xdebug

公式を補足しつつ最初から丁寧に設定手順

  1. Visual Studio Code (略称VSCode)をインストール
  2. VSCodeの拡張機能 Remote Developmentをインストール
  3. 開発するディレクトリでcode .でwslリモート接続状態でVSCodeを開く
  4. 拡張機能PHP Debugをインストール
  5. sail downでコンテナを落としておきます。
  6. .envに以下を追記
.env
SAIL_XDEBUG_MODE=develop,debug,coverage
  1. launch.jsonを作成

    もちろんPHPで構成
  2. 作成した.vscode/launch.jsonを調整
launch.json
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Sail Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/var/www/html": "${workspaceFolder}"
            },
            "hostname": "localhost",
            "ignore": [
                "**/vendor/**/*.php"
            ],
            "xdebugSettings": {
                "max_data": 65536,
                "show_hidden": 1,
                "max_children": 100,
                "max_depth": 3
            }
        }
    ]
}

"ignore""xdebugSettings"は必須ではないはず。お好みで外すなど調整してください。

  1. sail up -dでコンテナを起動
  2. 公式(日本語)のXdebug ブラウザ使用法に沿ってブラウザの拡張機能をインストール

Webブラウザでアプリケーションを操作しながらデバッグするには、WebブラウザからXdebugセッションを開始するためのXdebugが提供する手順に従ってください。

chromeなら以下キャプチャの赤線のブラウザ拡張機能をインストール

(念のため補足)
LinuxホストIP設定はデフォルトの最小限の設定なら不要。

動作確認

  1. デバッグ起動
  2. ブレークポイントを付けておく。例としては以下のキャプチャのようなところ
  3. http://localhost/ に一度アクセス
  4. http://localhost/ でブラウザ拡張機能Xdebug helperをDebug有効にする
  5. 再度 http://localhost/ にアクセスして、作成したブレークポイントの処理が実行されるところまで操作する。
  6. VSCodeで処理が止まっていることを確認する。(例の通りにLaravelインストール直後のデフォルトのブレークポイントならlocalhostにアクセスしたときに止まるはずです。)

終わりに

実はlaunch.jsonだけ記述がわからなかったです・・。デフォルトの生成のままだとブレークポイントすり抜けました。Xdebug公式の見落としか、自分で考えろってことかも・・?
というわけで、以下のstackoverflowの記事を参考にさせていただいています。

【launch.json参考】
https://stackoverflow.com/questions/72199650/unable-to-get-xdebug-3-working-with-laravel-sail-docker-and-visual-studio-code

デバッグ環境を整えて、よいLaravel開発を!

Discussion

ログインするとコメントできます