Laravel Debugbarにカスタムデータコレクターを追加する方法

Laravel Debugbarにカスタムデータコレクターを追加する方法

Laravel開発では、デバッグとパフォーマンスの監視が重要です。Laravel Debugbarは、これを容易にする強力なツールです。カスタムデータコレクターを作成することで、特定のニーズに合わせた詳細なデバッグ情報を取得し、開発効率を大幅に向上させることができます。この記事では、Laravel Debugbarにカスタムデータコレクターを追加する方法を紹介します。

Laravel Debugbarの概要

Laravel Debugbarは、Laravelフレームワーク用の開発者向けツールであり、アプリケーションのデバッグとパフォーマンス分析を容易にします。このツールは、アプリケーションの実行中に収集されたデータを視覚的に表示し、データベースクエリ、ルート情報、セッションデータ、実行されたコントローラー、ビューの詳細など、多岐にわたる情報を提供します。デバッグバーはブラウザの下部に表示され、開発中の問題を迅速に特定し、解決するのに役立ちます。

Laravel Debugbarのインストール

Composerを使用してbarryvdh/laravel-debugbarをインストールします。

$ composer require barryvdh/laravel-debugbar --dev

カスタムデータコレクターの作成

まず、カスタムデータコレクターを実装します。

`uniqid()`の結果をインジケーターに表示するカスタムデータコレクターの実装例:

class MyDataCollector extends \DebugBar\DataCollector\DataCollector implements \DebugBar\DataCollector\Renderable
{
    public function collect(): array
    {
        return [
            "uniqid" => uniqid(),
        ];
    }

    public function getName(): string
    {
        return 'mycollector';
    }

    public function getWidgets(): array
    {
        return [
            "mycollector" => [
                "icon" => "cogs",
                "tooltip" => "uniqid()",
                "map" => "mycollector.uniqid",
                "default" => "''"
            ]
        ];
    }
}

ウィジェットとして表示する場合は、以下のように設定します。

public function getWidgets(): array
{
    return [
        "mycollector" => [
            "icon" => "cogs",
            "widget" => "PhpDebugBar.Widgets.HtmlVariableListWidget",
            "map" => "mycollector",
            "default" => "{}"
        ]
    ];
}

カスタムデータコレクターの詳しい詳細は、PHP Debug Barの公式ドキュメントを参照してください。

カスタムデータコレクターの登録

次に、カスタムデータコレクターをLaravel Debugbarに登録します。

実装例:

namespace App\Providers;

use Barryvdh\Debugbar\Facades\DebugBar;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        if (class_exists(DebugBar::class)) {
            \Barryvdh\Debugbar\Facades\Debugbar::addCollector($this->app->make(MyDataCollector::class));
        }
    }
}

カスタムデータコレクターの表示結果

上記のカスタムデータコレクターの設定を行った場合、Laravel Debugbarに以下のような表示が追加されます。

`uniqid()`の結果をインジケーターとして表示した場合:

`uniqid()`の結果をウィジェットとして表示した場合:

おわりに

カスタムデータコレクターを追加することで、Laravelアプリケーションのデバッグがより柔軟になります。この機能を利用して、開発プロセスをより効率的に進めましょう。

参考文献