Laravel Telescopeの使い方

Laravel

Laravel Telescopeは、Laravel開発環境において非常に有用なツールです。本記事では、そのインストール方法や設定、活用方法について詳しく解説します。

Laravel Telescopeとは?

Laravel Telescopeは、アプリケーションへのリクエスト、例外、ログエントリー、データベースクエリ、キューに登録されたジョブ、メール、通知、キャッシュ操作、スケジュールされたタスク、および変数のダンプなどを監視・管理するためのデバッグツールです。これにより、開発者はアプリケーションの動作をより深く理解し、迅速なデバッグが可能になります。

saku
saku

このように画面でリクエストの情報や、

SQLをデバッグできます!

インストール

TelescopeをLaravelプロジェクトにインストールするためには、Composerを使用します。以下のコマンドを実行してください。

composer require laravel/telescope

次に、以下のArtisanコマンドを実行して、Telescopeのアセットとマイグレーションを公開します。

php artisan telescope:install
php artisan migrate

最後に、/telescopeルートからTelescopeダッシュボードにアクセスできます。

ローカル開発のみのインストール

ローカル開発のみでTelescopeを使用する場合、以下のように--devフラグを使用できます。

composer require laravel/telescope --dev
php artisan telescope:install
php artisan migrate

その後、bootstrap/providers.phpからTelescopeServiceProviderを削除。

App\Providers\AppServiceProviderクラス内のregisterメソッドで手動でサービスプロバイダーを登録します。以下のような形になります。

public function register(): void
{
    if ($this->app->environment('local')) {
        $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class);
    }
}

これにより、現在の環境がlocalの場合のみTelescopeが動作します。

Telescopeの画面はデフォルトで、ローカル環境以外は見られないようになっています。
この設定はTelescopeそのものを、ローカル環境以外でインストールしない場合を想定しています。

設定

Telescopeの設定ファイルは、config/telescope.phpに置かれています。このファイルでは、監視機能の設定が可能です。一部のオプションは以下の通りです。

  • enabled: Telescopeのデータ収集を有効または無効にします。
  • watchers: どのデータを監視するかを設定します。

データのプルーニング

Telescopeのデータが急増しないように、データのプルーニングを行うことができます。次のコマンドをスケジュールして、古いエントリーを定期的に削除します。

use Illuminate\Support\Facades\Schedule;

Schedule::command('telescope:prune')->daily();

デフォルトでは、24 時間おきに全削除されます。

hoursオプションをつけることで、データの保持期間を決定できます。

Schedule::command('telescope:prune --hours=48')->daily();

この例だと48時間以上経過したデータを、毎日削除します。

ダッシュボードの認証

Telescopeダッシュボードはデフォルトでlocal環境内でのみアクセス可能です。これにより、より安全に開発ができます。非ローカル環境でのアクセスを制御するためには、app/Providers/TelescopeServiceProvider.phpに認証ゲートを定義します。

protected function gate(): void
{
    Gate::define('viewTelescope', function (User $user) {
        return in_array($user->email, ['your-email@example.com']);
    });
}

まとめ

本記事では、Laravel Telescopeの基本的な使い方について説明しました。

Telescopeは、アプリケーションの監視とデバッグに役立つ非常に強力なツールです。うまく活用することで、開発の効率が大幅に向上します。

まずはローカル環境に入れてみて、試してみると良いでしょう!

設定項目が少ないので、気軽に導入できる点が素晴らしいなと感じました👏