Laravel：Debugbarを左からまとめる

こんにちは。

Laravelのdebugbar便利ですよね。
ただ機能が多く、使いこなせてる気がしないのでここらで何ができるかまとめようと言う記事です。
*現状わかってないこともあるので分かり次第追記します。

![スクリーンショット 2022-03-02 23.44.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/fa47055a-b1fa-0460-3312-b579047cc61f.png)

設定はこれで全てのはず。

```debugbar.php
    'collectors' => [
        'phpinfo'         => true,  // Php version
        'messages'        => true,  // Messages
        'time'            => true,  // Time Datalogger
        'memory'          => true,  // Memory usage
        'exceptions'      => true,  // Exception displayer
        'log'             => true,  // Logs from Monolog (merged in messages if enabled)
        'db'              => true,  // Show database (PDO) queries and bindings
        'views'           => true,  // Views with their data
        'route'           => true,  // Current route information
        'auth'            => true,  // Display Laravel authentication status
        'gate'            => true,  // Display Laravel Gate checks
        'session'         => true,  // Display session data
        'symfony_request' => true,  // Only one can be enabled..
        'mail'            => true,  // Catch mail messages
        'laravel'         => true,  // Laravel version and environment
        'events'          => true,  // All events fired
        'default_request' => true,  // Regular or special Symfony request logger
        'logs'            => true,  // Add the latest log messages
        'files'           => true,  // Show the included files
        'config'          => true,  // Display config settings
        'cache'           => true,  // Display cache events
        'models'          => true,  // Display models
    ],
```

# Messages
必須！ログの出力が確認できる。

```php
\Log::info('Log::info()');
\Debugbar::info('Debugbar::info()');
logger()->info('logger()->info()');
```

![スクリーンショット 2022-03-03 1.20.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/558cc321-8fb2-4fe9-f1ae-f692845a8fe3.png)

# Timeline
時間計測ができる
処理が重い時に原因の切り分けができる。
Booting: laravel　起動時間
Application: 実際の処理時間<-ここの割合を見ることが多い

```php
start_measure('key', 'keyで囲った処理');
// 時間測りたい処理
sleep(2);
stop_measure('key');
add_measure('最初からの経過時間', LARAVEL_START, microtime(true));
```

![スクリーンショット 2022-03-03 1.18.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/9c4c07c8-e518-9f7b-1cd8-d7747ed04e2d.png)

# Exceptions
エラーの詳細を表示してくれる。

```php
try {
    throw new \Exception('エラー');
} catch(\Exception $e) {
    \Debugbar::addException($e);
}
```

![スクリーンショット 2022-03-03 1.28.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/6f927123-a8a4-b039-2e05-df48ce0f1323.png)

# Request
リクエストの中身が見れる。
validationのデバッグで使えそう。

localhost/hoge?hoge=hogeeeeee
でアクセスした例
![スクリーンショット 2022-03-03 1.31.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/bd892d0d-ac25-db35-cf4b-db1746eee9dc.png)

# Events
イベントの処理にかかった時間が出てくる。


![スクリーンショット 2022-03-03 1.45.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/9cc87438-38bb-1edf-af1f-cf74d18f61b8.png)

# Views
表示しているbladeの詳細が出てくる。
渡しているパラメータのkeyは見れた。

```hoge.blade.php
@includes('fuga', [
    'title' => 'fuga',
])
```

```fuga.blade.php
{{ $title }}
```

![スクリーンショット 2022-03-03 1.51.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/596626dd-2e9c-a17e-a2ec-2c4a2b7df38d.png)

# Route
routingの詳細が見れる。

![スクリーンショット 2022-03-03 1.53.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/936b5302-cef5-870e-8176-02990b274a74.png)

# Queries
必須!処理の中で発行されたsqlが確認できる。
他にも実行時間がわかるので重いクエリやN+1の発見に役立つ。

![queries.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/9c9e81f7-9bcf-7c31-df54-529a1cc29659.png)
画像引用：[Laravel Debugbarについて](https://qiita.com/goto_smv/items/b7be0985029ab3d03217#queries)

# Models
利用しているモデルとその数が出力される

# Mails
よくわからない?
メール飛ばす時に確認します。

# Logs
storage/logsファイルの中身を出してくれる。
ファイルの中身全てを出してくれるわけではない。

![スクリーンショット 2022-03-03 2.12.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/9047dd87-ff6e-cb54-fe0c-9466d5b081d9.png)

# Auth
認証周り？手元では常にnullなので、よくわからない。

# Gate
Gateの確認を行なってくれるみたい。
よくわからない。

# Cache
viewのキャッシュ情報が出てくる。
forgetボタンからキャッシュの削除が可能。*ログイン情報なども消える。

![スクリーンショット 2022-03-03 2.28.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/6e9ec0e4-314c-224c-ba7a-85d1790deaf7.png)

# Config
config/以下の設定をまとめて表示してくれている。

# Session
session情報が確認できる。
flashやoldの値が確認できる。

![スクリーンショット 2022-03-03 2.29.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/787586/6a00e823-9e5c-2947-0522-b0d4a454ab60.png)