LoginSignup
2
7

More than 3 years have passed since last update.

Dockerで構築したLaravel環境に、VSCodeでステップ実行デバッグを仕掛ける

Last updated at Posted at 2020-07-13

元記事 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 プロジェクトを開く。

image.png

メインメニューからデバッガ設定画面を開く。

(設定ファイルがない場合は初回設定の際に作成されます。)
image.png

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の下に

image.png

ブレークポイントの設定

  • 一時停止した時の挙動が確認ができるように、変数に文字をセットするようコードを修正。
-- 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);
});
  • Web.phpにブレークポイントをセット
    image.png

デバッグ開始

image.png

ブラウザでPHPサーバーにアクセスしてみる。

http://localhost/

18行目で処理が一時停止、左側のタブで変数に格納された文字列を確認できる

変数にマウスオーバーしても値を確認できる

image.png

参考リンク

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7