VSCodeの拡張機能のインストール
PHP Debugをインストールする。
(VSCoedeの拡張機能のところで、felixfbecker.php-debugと検索)
Xdebugのインストールと設定
macのMAMPにはXebugがデフォルトでインストールされれている。
Xdebugがインストールされているか確認する方法
適当なファイル(例:phpinfo.php)を作成し、以下のように記述する。
<?php
phpinfo();
?>
このページをブラウザで開き、Xdebugの記述があればインストールされている。
Xdebugについての記述が無い場合は、インストールを行う。
Xdebugのインストール方法(Xdebug3の場合)
-
Xdebug Wizardを開く。
https://xdebug.org/wizard -
先ほどのブラウザに表示されたphpinfoを全てコピーし、Xdebug Wizardのテキスト欄に貼り付ける。
-
「Analyse my phpinfo() output」をクリック。
-
InstructionsのところにダウンロードするべきXdebugが表示されるので、リンクをクリックしてダウンロードする。
-
Instructionの「2. Move the downloaded file to ~~~~」のパスをコピーし、エクスプローラーを開いて貼り付け、このパスまで移動する。ここに、4.でダウンロードしたファイルをドラッグ&ドロップする。
-
Instructionの「3. Edit ~~~~」のパスを辿り、php.iniを開く。「add the line」以下の「zend_extension = 」をphp.iniの一番下に追記する。(xdebug.mode=debugにしておく)
-
サーバーを再起動し、phpinfoを開いてXdebugの記述があるか確認する。
インストール済みの場合の設定方法
-
phpinfoの「Configuration File (php.ini) Pathのconfの前までをコピー。Finderでこのパスまで移動する。/lib/php/extensions/no-debug~~/xdebug.so この「xdebug.so」が対象のファイルなので、このファイルまでのフルパスをコピーする。
-
phpinfoの「Configuration File (php.ini) Pathのconf/php.iniに、[Xdebug]の設定を追記する。
//Xdebug ver3の場合
[XDebug]
xdebug.mode=debug,develop,trace
xdebug.start_with_request = yes
zend_extension = C:\MAMP\bin\php\php7.4.1\ext\php_xdebug-3.0.0-7.4-vc15.dll
※zend_extensionはXdebug Wizardでコピーした値
//Xdebug ver2、またはMacの場合
[XDebug]
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_port = 9010
zend_extension = C:\MAMP\bin\php\php7.4.1\ext\php_xdebug-2.0.0-7.4-vc15.dll
※Windowsの場合:zend_extensionはXdebug Wizardでコピーした値
※Macの場合:xdebug.soまでのパス
3.サーバーを再起動して、設定を反映させる。
VSCodeの設定
-
デバッグの設定(サイドバーの虫のアイコン)より、「launch.json ファイルを作成します。」をクリック。「PHP」を選択する。
-
.vscode/launch.jsonが作成されるので、以下の通り編集する。これより下は不要なので削除する。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9010,
//php.iniのポートと同じに。
"stopOnEntry": true
},
]
}
PHPのワーニングを画面表示する
※ワーニングエラーも、開発環境では確認できる方がよいので。
- php.iniを開き、「display_errors」と検索する。
- 「display_errors = On」に変更する。
- サーバーを再起動して、設定を反映させる。