LoginSignup
3
2

More than 1 year has passed since last update.

【Laravel】開発環境にN+1警察👮を宿らせる 【Laravel N+1 Query Detector】

Last updated at Posted at 2022-12-09

概要

N+1を検知してアラートで知らせてくれるライブラリを導入して使ってみます。
実際にプロジェクトにも導入してみました。

インストール

composer require beyondcode/laravel-query-detector --dev
php artisan vendor:publish --provider=BeyondCode\\QueryDetector\\QueryDetectorServiceProvider

configディレクトリに設定ファイルが追加されました。
邪魔になったらコメントアウトで消せます。

config/querydetector.php
'output' => [
    // 画面上でアラートを検知内容を表示
    \BeyondCode\QueryDetector\Outputs\Alert::class,
    // ログファイルに検知内容を表示
    \BeyondCode\QueryDetector\Outputs\Log::class,
]

コンソールにも表示できます

'output' => [
    \BeyondCode\QueryDetector\Outputs\Console::class
]

実際に警察に出てきてもらう🚔

さんぷる
$schedules = Schedule::all();
foreach ($schedules as $schedule) {
    echo $schedule->user->name;
}

👮「
スクリーンショット 2022-11-30 17.35.00.png

はい怒られました。
画面に出てくるのがうざい場合はコンソールだけにしましょう。

プロジェクトに導入してみて

○ 無意識に起こしてしまっていたN+1を知れ、早急に対処に取り掛かれる
× ごちゃごちゃしてるコードだと実際どこのコードなのか分からない

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2