ホームページ > 記事 > PHPフレームワーク > LaravelでのSQLデバッグのヒント
何らかの理由で、Laravel DebugBar を使用できない場合は、この記事が役立つかもしれません。
Laravel アプリケーションの最適化は、N 1 問題を解決するだけではありません。 Laravel DebugBar を適切に使用すると、モデルのメモリ使用量や SQL クエリの適時性などの問題に対する合理的な解決策が得られます。
Laravel DebugBar を使いたくない、または何らかの理由 (インターフェイスベースのアプリケーションの開発など) で Laravel DebugBar を使用できない場合は、データベース リスナーが良い方法になるでしょう。 SQL クエリをログに記録します。
これは運用環境とテスト環境に同様に適用され、env または config を通じて有効にするかどうかを簡単に制御できます。
使用方法:
これを AppServiceProvider の起動メソッドに追加します
if (env("SQL_DEBUG_LOG")) { DB::listen(function ($query) { Log::debug("DB: " . $query->sql . "[". implode(",",$query->bindings). "]"); }); }
運用環境で使用する場合は、構成に含めることをお勧めします。設定情報を env に保存すると、この設定情報をキャッシュできます (キャッシュする必要があります)。
別の問題は、SQL 呼び出し自体が失敗すると例外がスローされ、呼び出しが成功する前に待機することです。 DB::listen はログを記録せず、リスナーに戻る前に例外が発生します。
推奨チュートリアル: 「PHP チュートリアル 」 「Laravel チュートリアル 」
以上がLaravelでのSQLデバッグのヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。