Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
49
Help us understand the problem. What is going on with this article?
@yKanazawa

Visual Studio CodeでPHPのステップ実行

More than 1 year has passed since last update.

はじめに

以前の記事で、Docker + PHP Storm でステップ実行する方法を紹介しました。
https://qiita.com/yKanazawa/items/363ba93f8a376c5b9e75
今回は、そのVisual Studio Code版になります。

無償のエディタでPHPのステップ実行ができる環境が作れますので、会社でも積極的に導入できるかと思います。
個人的には、PHP Stormと比較しても遜色ない(長所もあれば短所もある)デバッグ環境だと思いました。

以下、Visual Studio Code + XDebug でデバッグ・ステップ実行する方法を解説します。

検証環境

  • Windows 10 Professional
  • Docker for Windows
    • nginx
    • PHP-FPM
    • XDebug
  • Visual Studio Code

PHP-FPMの設定

Dockerコンテナ内の/etc/php.d/xdebug.iniを以下のように設定します。

[xdebug]
zend_extension="/usr/lib64/php/modules/xdebug.so"
xdebug.remote_enable = On
xdebug.remote_port = 9000
xdebug.remote_autostart = On
xdebug.remote_host = host.docker.internal
xdebug.profiler_output_dir = "/tmp"
xdebug.max_nesting_level= 1000

Visual Studio Codeの設定

拡張機能の PHP Debug をインストールします。
1.png

Debug → Add Configuration → PHP を選択します。
2.png

Listen for XDebug を以下のように設定します。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "stopOnEntry": true,
            "pathMappings": {
                "/var/www/test": "${workspaceRoot}"
            }
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

※うまく動かないときは${workspaceRoot}をフルパスでベタ書きすると良いかも。

     "/var/www/test": "${workspaceRoot}"
↓
     "/var/www/test": "c:/Users/kanazawa/www/test"

ステップ実行の開始

「Listen For XDebug」を選択した状態で、横の再生ボタンを押下します。
5.PNG

ブレークポイントを予め設定しておくと、その位置で停止します。
画面上部のツールバーアイコンから、ステップオーバーが可能です。
4.png

最後に

Visual Studio Codeは様々なプログラミング言語をサポートしているので、PHP以外でもステップ実行できる環境として使えそうです。

今後、他のプログラミング言語についても調べていきたいと思います。

49
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
lancers
テクノロジーで誰もが自分らしく働ける社会をつくる。日本最大級のクラウドソーシング「ランサーズ」を運営

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
49
Help us understand the problem. What is going on with this article?