ホームページ  >  記事  >  PHPフレームワーク  >  LaravelでのSQLデバッグのヒント

LaravelでのSQLデバッグのヒント

Guanhui
Guanhui転載
2020-06-12 17:56:193067ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。