Visual Studio CodeでPHPデバッグ

Visual Studio CodeでPHPのデバッグするには
拡張機能の「PHP Debug」を使います。
この「PHP Debug」は、PHPのデバッグ用拡張機能であるXDebugに対するインターフェースみたいなものです。
ですから必要なものをまとめると

PHP動作環境 + XDebug
Visual Studio Code + PHP Debug

の両方が必要です。

PHP動作環境 + XDebugの準備

今回は、DBも使わないシンプルなPHPデバッグを目指しているので
PHPは、Windowsで単体で動く環境とします。

WindowsにPHPをインストール

Windows版PHPのインストールは以下を参考にしてください。

Windows PHP用XDebugのダウンロード

下記サイトより、
リリース版で
PHPのバージョンbit数に応じたDLLファイルをダウンロードします。

私は、PHP 7.1 VC14 TS (64bit)をダウウンロードしました。

PHP 7.1 VC14 ← PHPのバージョン 7,1
TS ← Thread Safe
64bit ← 組み込み先のプログラムのbit数
(64bitのWindows版PHPに組み込むため64bit)

警告が出ますが、問題ないハズなので「保存」をクリックします。
(ブラウザにより出ない場合もあります)

ダウンロードしたファイル
php_xdebug-2.7.0RC1-7.1-vc14-x86_64.dll
ファイル名は選んだファイルにより異なります

これをPHPがインストールされているフォルダー内の
「ext」フォルダに入れます。

XDebugの情報をphp.iniに登録

PHPがインストールされているフォルダ内の
「php.ini」ファイルをテキストエディタで開いて
最後の行に以下のXDebugの情報を加えます。
1行目の「zend_extension = 」に代入する内容は、環境で異なります。
ダウンロードしたXDebugのDLLをextフォルダへ格納した状態のファイルパスを指定します。

XDebugの情報(例)

[XDebug]
zend_extension = "C:\php-7.1.26\ext\php_xdebug-2.7.0RC1-7.1-vc14-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

「PHP動作環境 + XDebug」の準備はこれで完了です。

Visual Studio Code + PHP Debugの準備

Visual Studio Codeのインストール

Visual Studio Codeをまだインストールされてない場合は、
こちらを参照してインストールしてください。

Visual Studio Codeへ拡張機能「PHP Debug」をインストール

Visual Studio Code を起動して

左のアクティビティバーから
「拡張機能」アイコンをクリックします。

検索窓に「php」と入力して
検索された
拡張機能「PHP Debug」の
「インストール」をクリックします。

デバッグしてみる

デバッグ対象のフォルダを開く

Visual Studio Code は、デバッグの構成情報を収めるフォルダを
デバッグ対象のフォルダ内に作ります。
(これが無いとデバッグ出来ない)

その為、デバッグを始める場合は、
必ずフォルダを開いてる必要があります。

メニューのファイルから
「フォルダー開く」で適当なフォルダーを開きます。

デバッグ構成を作成する

デバッグが初めてのフォルダの場合にこの作業が必要です。

左のアクティビティバーから
「デバッグ」アイコンをクリックします。

デバッグの「構成を追加…」をクリックします。

環境の選択は
「PHP」をクリックします。

デバッグ対象のフォルダー内に
デバッグ構成を格納するフォルダー「.vscode」
とその中に
デバッグ構成の情報ファイル「launch.json」
が作成されます。

テスト用に適当にPHPファイルを作り
ブレークポイントを設定します。

デバッグの開始

テスト用に作ったPHPファイルをデバッグしてみます。

左のアクティビティバーから
「デバッグ」アイコンをクリックします。

今開いてるPHPファイルでデバッグするので、
構成は、「Launch curently open script」をクリックします。

「デバッグ開始」をクリックします。

開いてるPHPファイル(例 test.php)の
先頭から実行され
ブレークポインタで停止しました。

ウォッチ式に変数「$c」を登録してあるので
次のステップで変数「$c」に値が入るはずです。

では「ステップイン」をクリックします。

ウォッチ式に変数「$c」を登録してあるので
次のステップで変数「$c」に値が入るはずです。

では「ステップイン」をクリックします。

ウォッチ式の変数「$c」に”abcdefgh”と値が入りました。

最後まで実行してみます。
今度は「続行」をクリックします。

開いているPHPは、変数「$c」の値をecho して終了しました。

デバッグコンソールにechoした内容が表示されています。

まとめ

Visual Studio Code でPHPのデバッグは問題なく出来たようです。
DBも含め、WordPress自体のデバッグなどの複雑なPHPでは対応出来ませんが、
ある程度のデバッグならこれで十分イケると思います。

複雑になった場合は、httpd、xampp、VirtualBoxとか外部サーバーを考えた方が良いでしょう。