元記事 Dockerで構築したLaravel環境に、PHPStormでステップ実行デバッグを仕掛ける
← 元元記事 最強のLaravel開発環境をDockerを使って構築する【新編集版】
目的
Dockerで構築したLaravel環境で実行されているPHPコードに対して、
Microsoft製の「VSCode」からステップ実行デバッグができるようにしたい。
概要
PHP定番デバッグツール xdebug を使用して実現していきます。
元記事でサーバサイド側の設定まで設定済みであることが前提。
本記事ではクライアント側であるVSCodeの設定のみ記載します。
(元記事、元元記事共に大変参考になりました。感謝。。)
環境
- 冒頭に書いた元記事および元元記事の手順でLaravel環境を構築済であること。
- VSCode最新版を使って開発している方。(Mac版で動作確認済。)
方法
クライアント側作業(お手元のMac)
VSCodeを起動する。
PHP Debugをインストールしていない場合は PHP Debug - Visual Studio Marketplace をインストールしておく
VSCodeでdocker-laravel プロジェクトを開く。
メインメニューからデバッガ設定画面を開く。
launch.jsonを作成後、以下の設定を貼り付ける
- portはサーバ側で設定した値と同じになるようにする
- pathMappings
- サーバ側のアプリケーション配置場所:"/work/backend"
- クライアント側のアプリケーション配置場所:"${workspaceRoot}/backend"
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {
"/work/backend": "${workspaceRoot}/backend"
}
}
]
}
.vscode/launch.jsonが下記画像のように作成されていればOK
- ドキュメントルートがDocker-backendの下に
ブレークポイントの設定
- 一時停止した時の挙動が確認ができるように、変数に文字をセットするようコードを修正。
-- Web.php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
$hoge = 'welcome';
return view($hoge);
});
デバッグ開始
ブラウザでPHPサーバーにアクセスしてみる。
18行目で処理が一時停止、左側のタブで変数に格納された文字列を確認できる
変数にマウスオーバーしても値を確認できる