XDebugとVSCodeでCakePHPをデバッグ

XDebugのモジュールを追加し、VSCodeでCakePHPの開発を行えるようにする。
今回はアプリケーションサーバとしてPHPのビルトインサーバを使う。

XDebugのDLL入手

XDebugとは

XDebugについて、こちらに詳細を解説されている。

PhpStorm から Vagrant VM の PHP アプリケーションをリモートデバッグする(Web & CLI)

PHPはリクエストを受けた時に、XDebugの設定で指定されたサーバ(デバッガ)にDBGPで接続し、遠隔からデバッギングの命令を受け付ける。デバッギングが終了しDBGP通信が終了すると、PHPは完全なコンテンツを生成し、リクエストしてきたクライアントに返す。

インストール

DLLをダウンロードしてPHPのインストールフォルダ内のextフォルダに置くだけ。
https://xdebug.org/download.php

インストールしてあるPHPと同じバージョン、ビット数、TS:ThreadSafe/非TSを選ぶ。

php.ini修正

以下の修正を加える。

225c225
< output_buffering = 4096
---
> output_buffering = Off
927a928,929
> zend_extension = php_xdebug-2.5.5-7.1-vc14-x86_64.dll
>
1929a1932,1937
>
> [XDebug]
> xdebug.remote_enable = On
> xdebug.remote_autostart = On
> xdebug.remote_host = "127.0.0.1"
> xdebug.remote_port = 9000

出力のバッファリングを無効にし(225c225)、XDebugのモジュールを読み込み(927a928,929)、127.0.0.1:9000でListenしているデバッガに接続するよう(1929a1932,1937)指示している。

CakePHPの起動

今回はPHPのビルトインサーバを使うので、bin\cake serverし、サーバを起動させておく。
(コーディング中・デバッギング中は起動させたまま)

この時、PHPへリクエストを送るとPHPのプロセスからXDebugにて設定したリモートホストへ通信を試みているのがnetstat等でわかる。

VSCodeの設定

VisualStudio Code、およびPHP Debug拡張機能をインストールしておく。
launch.jsonは構成マネージャが自動生成したままの、デバッガとして9000ポートをListenする、という設定でよい。

以上で基本的な設定は終了。

VSCodeでデバッグ

PHPビルドインサーバが起動しているか、もう一度念のため確認する。
PHPビルドインサーバが起動していればVSCodeを起動し、目的の関数の部分にブレークポイントを設定し、デバッグを開始する。

ブラウザでCakePHPのアプリケーション(http://localhost:8765)にアクセスすると、VSCode上でブレークポイントにて制御が止まり、デバッグペイン等にその時のプログラムの様子が表示され、デバッグが可能になる。

以上。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です