Laravelでの開発にはとても便利なので、追加することをお勧めします。
親記事
Laravel 5.7で基本的なCRUDを作る - Qiita
Debugbarをインストールする
barryvdh/laravel-debugbar: Laravel Debugbar (Integrates PHP Debug Bar)
開発に欠かせない Laravel Debugbar の導入 - Larapet
# 本来は --dev を付けますが、今回は本番環境でも使いたいので下記のように。
# ただし、パスワードも丸見えになるので注意!
> composer require barryvdh/laravel-debugbar
Laravel5.5からはAuto Discoveryの機能があるので、Composerでrequireするだけで使えるようになります。
(補足) Auto Discoveryとは
本来なら、app.php
でサービスプロバイダとファサードに登録する作業が必要です。
'providers' => [
+ Barryvdh\Debugbar\ServiceProvider::class,
],
'aliases' => [
+ 'Debugbar' => Barryvdh\Debugbar\Facade::class,
]
しかしLaravel5.5以降は、このデバッグバーのようなパッケージの開発者が、そのパッケージのcomposer.json
のextra
セクションで記述しておいてくれれば、我々利用者が上のような作業をする手間が省けます。
readouble.com: パッケージディスカバリー
[Laravel5.5]Package Auto Discoveryを理解する
そして、このデバッグバーの開発者さんは、きちんと対応してくれています。
デバッグバーのcomposer.json(35行目)
Debugbarの設定を変更する
デバッグバーを画面に表示するかどうかは環境変数APP_DEBUG
の値(true/false)で決まります。
しかし、下記のようにDebugbarの設定ファイルを生成すればAPP_DEBUG
に左右されずに設定できます。
# デバッグバーの設定ファイル(config/debugbar.php)を生成する
> php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"
環境設定ファイルにDebugbarの設定を記述します。
DEBUGBAR_ENABLED=null # デフォルト。APP_DEBUGに応じて決まる
DEBUGBAR_ENABLED=true # 必ず有効
DEBUGBAR_ENABLED=false # 必ず無効
今回のアプリは練習用であり、本番環境でもデバッグバーを表示させます。
本番の環境設定は下記のようになる予定です。
APP_ENV=production
APP_DEBUG=false # 一般的な本番環境と同じく、デバッグ表示は無効
DEBUGBAR_ENABLED=true # デバッグバーは有効
なお、ローカル環境でも上のようにするのはやりすぎです。
デバッグバーは万能ではなく、ソースコードにミスがあってアプリ自体が動かない場合はデバッグバーも表示されません。
そんな時はAPP_DEBUG=true
によるデバッグ表示が役に立ちます。
Debugbarを使う
たとえばデータベースから取得した記事一覧を確認したい時、Postコントローラで下記のように記述すれば、var_dump()
よりは分かりやすく表示できます。
public function index()
{
$posts = Post::latest()->get();
+ \Debugbar::info($posts);
return view('posts.index', ['posts' => $posts]);
}
また、Queries
でSQLを確認できます。
記事一覧を新しい順に取得する時、SELECT * FROM `posts` ORDER BY `created_at` DESC
というSQL文が実行されているようです。