Laravel Telescopeは、Laravel開発環境において非常に有用なツールです。本記事では、そのインストール方法や設定、活用方法について詳しく解説します。
Laravel Telescopeとは?
Laravel Telescopeは、アプリケーションへのリクエスト、例外、ログエントリー、データベースクエリ、キューに登録されたジョブ、メール、通知、キャッシュ操作、スケジュールされたタスク、および変数のダンプなどを監視・管理するためのデバッグツールです。これにより、開発者はアプリケーションの動作をより深く理解し、迅速なデバッグが可能になります。
このように画面でリクエストの情報や、
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は、アプリケーションの監視とデバッグに役立つ非常に強力なツールです。うまく活用することで、開発の効率が大幅に向上します。
まずはローカル環境に入れてみて、試してみると良いでしょう!
設定項目が少ないので、気軽に導入できる点が素晴らしいなと感じました👏