便利なLaravelのデバッグツール


laravel Telescopeというデバッグツールを使ってみようと思います。

Laravel公式のデバッグ・パッケージであり、レスポンスの内容や発生した例外、SQLのクエリなどを視覚化してくれます。

https://github.com/laravel/telescope

今回はphp8.3 laravel11で作成されたプロジェクトで進めます

公式ページにある通りにTelescopeをプロジェクトへインストールしていきます

まずは以下の3行を実行する

composer require laravel/telescope --dev

php artisan telescope:install

php artisan migrate

今回は、開発時に使用するので「composer require laravel/telescope –dev」とdevオプションをつけます。

こうすることで、composer.jsonのrequire-devに追加されます。

また、本番運用する環境へ反映する際は、必要のないパッケージを除くために、「composer install –no-dev」と–no-devをつけることで、require-devの記載部分を除きインストールすることができます。

bootstrap/providers.phpを開き、「App\Providers\TelescopeServiceProvider::class」の記述を削除します。

次に、app/Providers/AppServiceProvider.phpを開き、

registerメソッドにTelescopeを登録します

if ($this->app->environment('local')) {

            $this->app->register(\Laravel\Telescope\TelescopeServiceProvider::class);

            $this->app->register(TelescopeServiceProvider::class);

 }

最後にcomposer.jsonに追記します

この部分に

「”laravel/telescope”」を追加して

こう

では実際に画面を見て見ます

php artisan serveして起動

「ローカルのURL/telescope」にアクセス

このような画面が表示されます

新規作成したプロジェクトにTelescopeをインストールしただけなので、表示されるデータは全然ないですが、Requestsに表示されている内容を選択してRequestsDetailを開くと、ここからHeader情報やSession、表示されたviewファイルや、実行されたQueryまで見えるみたいですね!

これはなかなか便利そう!

もう少し色々できる状態で画面を見てみたいと思います。

以前にプロジェクト作成〜ログイン機能まで作ったので、このプロジェクトにtelescopeを導入して、動かしてみようと思います。

このような入力でユーザー登録をして、telescopeのダッシュボードを見てみます。

実際に動いたgetやpostが出ています。

postを見てみます

実際に動いたqueryなんかも見れますね。

usersにinsertしているqueryを見てみます。

戻ってsessionを見てみます

色々見えますね!

次はわざとエラーを起こしてみます

Profileの更新処理です

emailをnullにしてみます

これで更新処理はエラーになりますが、今回画面上はそのまま成功したことにしてreturnさせてます

エラーを起こしたあと、telescopeのダッシュボードで更新処理を見てみます

すると、このようにこのリクエストで出力したエラーのログが表示されています。

このメッセージを選択すると詳細も見ることができます。

このリクエストで、このクエリが動いて、このエラーメッセージが出てってわかるのはいいですね!

まだ試したことのない方は、一度試してみてはどうでしょうか。

以上!終わり!