PHP アプリケーションを VSCode でブレークポイントを入れて開発できるように設定する.

PHP の開発環境を整える

PHP アプリケーションの開発環境構築については M1 mac 環境に phpenv + php 7.4.30 + composer をインストールする 参照.

VSCode でデバッグできるようにする

次に PHP プロジェクトを VSCode でデバッグできるようにする. ここでは PHP プロジェクトを php -S "0.0.0.0:8888" で起動しているものとする.

まず最初に VSCode を起動し、 FileOpen Folder…​ から PHP プロジェクトのフォルダを開く. (プロジェクトのルートディレクトリが VSCode 上できちんとルートディレクトリとして開かれるようにすべきだろう.)

次に、PHP スクリプトをデバッグするため Xdebug の VSCode 拡張をインストールする. VSCode 上で Extentions を開き、 PHP Debug (https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug) という拡張機能をインストールする.

拡張機能がインストールできたら、デバッグのための構成情報 .vscode/launch.json を生成する. 手順は以下の通り.

  1. Run and Debug を開き、左側ペイン上の create a launch.json file をクリック.

  2. Select debugger とポップアップが表示されるので、メニュー中から PHP を選択する.

  3. launch.json が生成されるので、 Launch Built-in web server の設定を以下のように設定する.

{
    "version": "0.2.0",
    "configurations": [
        ...
        {
            "name": "Launch Built-in web server",
            "type": "php",
            "request": "launch",
            "runtimeArgs": [
                "-dxdebug.mode=debug",
                "-dxdebug.start_with_request=yes",
                "-S",
                "0.0.0.0:8888"
            ],
            "program": "",
            "cwd": "${workspaceRoot}",
            "port": 9003,
            "serverReadyAction": {
                "pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
                "uriFormat": "http://localhost:%s",
                "action": "openExternally"
            }
        }
    ]
}

これらの設定ができたら、VSCode 上で停止させたい行にブレークポイントを設定した上で Run and Debug 画面で構成を Launch Built-in web server に変更した上で Start Debugging をクリックしてサーバーを起動させることで、自動的に PHP プロジェクトが 0.0.0.0:8888 で起動し、Xdebug サーバーが 9003 番ポートで起動して 8888 で起動している PHP プロジェクトを監視してくれるようになる.

したがって、 http://localhost:8888 などにブラウザからアクセスすることで PHP プログラムが指定されたブレークポイントで停止するようになる.

VSCode でのデバッガの設定については VSCode でデバッガを動かしてみる も参考になるかも.