laravelで開発するなら、telescopeというデバッガが便利です。
laravelの公式パッケージとなってて、composerで導入することが出来ます。
laravelでtelescopeの導入手順
telescopeで出来ること
telescopeを使うと、laravelを使ったウェブアプリケーションのデバッグができます。
ブラウザからのリクエストを見たり、データベースアクセスのクエリを見たり、他にもキューやメールなど色々ダンプすることが出来ます。アクセスにかかった時間も見れますので、パフォーマンスチューニングするときに効果計測にも使えます。
本番サイトへデプロイするときには設定で無効にすることが出来るので、デプロイも安心です。
導入手順
composerでtelescope パッケージを取得したあと、artisanでインストールをします。さらにartisanでmigrateをしてtelescope用のテーブルを作成すれば完了です。下に詳細を書きます。
composerでtelescopeパッケージを取得
laravelアプリケーションのルートにて、composerを使って取得・インストールします。
composer require laravel/telescope --devと入力します。 --dev オプションは開発環境でだけtelescopeを使うオプションです。本番環境で使う可能性のある場合は --dev オプションは外しておいてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
user@cf-nx2 MINGW64 /c/data/tk/work/lara/firstsite (master) $ composer require laravel/telescope --dev Using version ^2.1 for laravel/telescope ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 2 installs, 0 updates, 0 removals - Installing moontoast/math (1.1.2): Loading from cache - Installing laravel/telescope (v2.1): Downloading (100%) Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover --ansi Discovered Package: beyondcode/laravel-dump-server Discovered Package: fideloper/proxy Discovered Package: laravel/telescope Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Discovered Package: nunomaduro/collision Package manifest generated successfully. |
artisanでtelescopeインストール
次に php artisan telescope:install と入力して telescopeをインストールします。
1 2 3 4 5 6 |
user@cf-nx2 MINGW64 /c/data/tk/work/lara/firstsite (master) $ php artisan telescope:install Publishing Telescope Service Provider... Publishing Telescope Assets... Publishing Telescope Configuration... Telescope scaffolding installed successfully. |
telescopeをサービス・プロバイダーに登録したりして使えるようにしてます。
artisanでtelescopeのテーブルをmigrate
最後に、 php artisan migrate と入力して、telescope用のテーブルを作成すれば完了です。
1 2 3 4 |
user@cf-nx2 MINGW64 /c/data/tk/work/lara/firstsite (master) $ php artisan migrate Migrating: 2018_08_08_100000_create_telescope_entries_table Migrated: 2018_08_08_100000_create_telescope_entries_table |
使ってみましょう
URL に /telescope を付けてブラウザからアクセスすると、telescopeを表示させることが出来ます。
/telescopeにアクセスするとリクエスト情報にリダイレクトされてます。
ここで、下図のように /projects にアクセスしてみます。
すると、/telescope に/projectsにアクセスしたリクエストのログが表示されます。
下図のようにリクエストの一覧と処理にかかった時間などが表示されてます。
リクエストの右側の「目」のアイコンをクリックすると詳細が表示されます。
リクエストの詳細は下図のように表示されます。
下方にはデータベースへアクセスしたクエリの一覧も表示されます。これで発行されたクエリの数がわかりますし、アクセスにかかった時間もわかります。ORMを使っていると心配になるパフォーマンスがしっかりわかるので安心です。
リクエストと同様に右側の「目」のアイコンをクリックすると、発行されたSQLを確認することが出来ます。
projectsテーブルからのデータ取得のクエリを表示させると、下図のように、whereを使って取得していることがわかります。
本番環境でtelescopeを使わない設定ようにするには
方法1:インストール時に対応
インストール時に –dev オプションを付けている場合は、.env の APP_ENV に production を設定すれば、telescope がアクセス禁止になります。
方法2:環境設定ファイル.envでテレスコープを禁止する
もし、–devオプション付けてないときや、開発環境でtelescopeを使いたくないときは、.envに、
TELESCOPE_ENABLED=falseという設定を追加します。
すると、/telescope アクセスは、Not Foundエラーとなります。
まとめ
この記事では、laravelのデバッガツールtelescope の導入手順と、リクエストとクエリの表示のさせ方も紹介しました。
laravelでウェブアプリ開発をする上では、かなり便利で、パフォーマンス・チューニングする場合にも、効果の比較がしやすくなりますので、ぜひ導入してみてください。
laravelを使ったウェブアプリのお仕事が一段落ついたため、これから laravelの記事をいくつか書いていきます。メルマガでも、プログラミングに役立つ情報や、ブログ更新のお知らせなど発信しています。
よかったら登録してみてください。
メルマガ登録フォーム
コメント