2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel Debugbarとエディタを連携させる

Last updated at Posted at 2024-03-21

はじめに

Laravelでの開発時にDebugbarとエディタを連携させブラウザでの出力とシームレスに連携してコーディングを行うためのTIPSです。

インストールや初期設定などは行っている状態での説明になります。
上記に関する詳しい解説は以下をご参照ください。

デバッグしたい

Laravelでも何でもそうですが、開発している時はとりあえずデバッグしたいと考えるかと思います。
xdebugをインストール・設定してリモートデバッグしてもいいのですが、お手軽に環境を作りたいです。

Laravel Debugbar

利用する場合はcomposer経由でインストールし

composer
composer require --dev barryvdh/laravel-debugbar

設定を下記のように有効にするだけです。

.env
APP_DEBUG=true

初期設定ではデフォルトでtrueになっています

laravelの組み込みサーバを立ち上げて

artisan
php artisan serve

http://127.0.0.1:8000/ にアクセスするとこのような感じでブラウザの出力にオーバーライドされます。

スクリーンショット 2024-03-21 10.02.36.png

いろいろな情報が把握できて便利ですね。このあたりは割とデファクトなのかと思います。

Debugerとエディタを連携させたい

せっかくブラウザに関連するlaravelのファイルがリストアップされるのにエディタとしてJetBrains社のPhpStormを利用していないとハイパーリンクが繋がりません。
これはリンクが「phpstorm://open?file=%path&line=%line」のようなフォーマットになっているからです。
つまりPhpStormをエディタとして使っていれば内部の独自プロトコルとして認識され、当該ファイルがエディタでオープンされる仕組みのようです。

それではせっかくの便利機能が使えないのは困ります…ですので設定で改善していきます。

configファイルで設定

Debugbarのconfigファイルで細かく設定を調整したい場合は以下のようにartisanを用いてconfigファイルをコピーします。

artisan
php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

これにより APP_PATH/config/debuger.php が生成され設定の上書きが可能になります。

config/debuger.php
    /*
    |--------------------------------------------------------------------------
    | Editor
    |--------------------------------------------------------------------------
    |
    | Choose your preferred editor to use when clicking file name.
    |
    | Supported: "phpstorm", "vscode", "vscode-insiders", "vscode-remote",
    |            "vscode-insiders-remote", "vscodium", "textmate", "emacs",
    |            "sublime", "atom", "nova", "macvim", "idea", "netbeans",
    |            "xdebug", "espresso"
    |
    */

   'editor' => env('DEBUGBAR_EDITOR') ?: env('IGNITION_EDITOR', 'phpstorm'),

例示でサポートされたエディタの値を環境変数 IGNITION_EDITOR1 の初期値として設定することが可能です。

config/debuger.phpをコミット対象にするとプロジェクト全般で設定が有効になります。チーム開発の場合、環境は人それぞれ違うかと思いますのでコミットされる可能性があるconfigで属人的な設定を行うよりは次で例示する.envファイルで行う方法の方が一般的かと思います。

.envファイルで設定

.envファイルに環境変数として設定します。

.env
+DEBUGBAR_EDITOR=idea

また2

.env
+IGNITION_EDITOR=idea

で上書き設定が可能です。

これでハイパーリンクのクリックでファイルをエディタでオープンすることができるようになり便利です。

スクリーンショット 2024-03-21 11.22.20.png

リモートサーバ実行時でも動作させたい

docker/sailなどリモートサーバでデバッグしている場合はパスがサーバ上の値でハイパーリンクに設定されるため、うまくファイルが開けません。そこでパスを調整するために以下の設定を追加します。

.env
+DEBUGBAR_LOCAL_SITES_PATH=/path/to/local/development_project/laravel

または

.env
+IGNITION_LOCAL_SITES_PATH=/path/to/local/development_project/laravel

これでパスが通り、リモート実行時でも連携可能になります。

  1. IGNITION_EDITORなどIGNITION_〜 の環境変数はlaravel-ignitionで定義されています。laravel-ignitionはLaravelバージョン9以降ではcomposer.jsonに記述があるためデフォルトでインストールされます。

  2. laravel-ignitionを利用している場合はIGNITION_〜の方を設定します。

2
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?