ホームページ  >  記事  >  バックエンド開発  >  Laravel ミドルウェア: データベースのクエリとパフォーマンスの監視をアプリケーションに追加します。

Laravel ミドルウェア: データベースのクエリとパフォーマンスの監視をアプリケーションに追加します。

WBOY
WBOYオリジナル
2023-07-28 14:53:101291ブラウズ

Laravel ミドルウェア: データベース クエリとパフォーマンス監視をアプリケーションに追加する

はじめに:
Web アプリケーションを開発する場合、データ クエリとパフォーマンス監視は非常に重要です。 Laravel は、これらの要件を処理する便利な方法、つまりミドルウェアを提供します。ミドルウェアはリクエストとレスポンスの間を処理するテクノロジーで、リクエストがコントローラーに到達する前、またはレスポンスがユーザーに返された後にいくつかのロジックを実行できます。この記事では、Laravel ミドルウェアを使用してデータベース クエリとパフォーマンス監視を実装する方法を紹介します。

1. ミドルウェアの作成
まず、ミドルウェアを作成する必要があります。次のコマンドを実行して、QueryLogMiddleware という名前の新しいミドルウェア ファイルを作成します。

php artisan make:middleware QueryLogMiddleware

このコマンドは、app/Http/Middleware ディレクトリに QueryLogMiddleware.php ファイルを生成します。これで、このファイルにミドルウェア ロジックを記述することができます。

2. データベースクエリログ機能の実装
データベースクエリログ機能を追加するには、ミドルウェアのハンドルメソッドでLaravelのDBファサード(Facade)を使用して、すべてのSQLクエリを取得し、それらをログファイルに記録します。以下はサンプル コードです。

<?php

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesDB;

class QueryLogMiddleware
{
    public function handle($request, Closure $next)
    {
        DB::connection()->enableQueryLog();

        $response = $next($request);

        $queries = DB::getQueryLog();

        foreach ($queries as $query) {
            // 将$query写入日志文件
        }

        return $response;
    }
}

上記のコードでは、最初に DB ファサードのenableQueryLog メソッドを呼び出して、クエリ ログ機能を有効にします。次に、リクエストがミドルウェア チェーンを通過した後、getQueryLog メソッドを呼び出してすべてのクエリ ログを取得します。最後に、クエリ ログをループして、各クエリ レコードをログ ファイルに書き込むことができます。

3. パフォーマンス監視機能の追加
クエリログの記録に加えて、ミドルウェアを使用してパフォーマンス監視機能を実装することもできます。たとえば、Laravel の Debugbar 拡張機能パッケージを使用して、アプリケーションの応答時間を監視できます。以下はサンプル コードです:

<?php

namespace AppHttpMiddleware;

use Closure;
use BarryvdhDebugbarFacade as Debugbar;

class PerformanceMiddleware
{
    public function handle($request, Closure $next)
    {
        $start = microtime(true);

        $response = $next($request);

        $end = microtime(true);

        $executionTime = $end - $start;

        Debugbar::addMeasure('Execution Time', $start, $end);

        return $response;
    }
}

上記のコードでは、Debugbar 拡張機能パッケージの Facade を使用して、「実行時間」という名前のパフォーマンス インジケーターを追加し、リクエストの実行時間を計算します。データベース クエリの数、メモリ使用量など、他のパフォーマンス指標を追加することもできます。

4. ミドルウェアの登録
次に、これらのミドルウェアをアプリケーションに登録する必要があります。 app/Http/Kernel.php ファイルを開き、$middlewareGroups 属性に次のコードを追加します。

protected $middlewareGroups = [
    'web' => [
        // 其他中间件...
        AppHttpMiddlewareQueryLogMiddleware::class,
        AppHttpMiddlewarePerformanceMiddleware::class,
    ],
    // 其他中间件组...
];

これにより、QueryLogMiddleware と PerformanceMiddleware が Web ミドルウェア グループに追加されます。つまり、これらは Web リクエスト中に実行されます。 。

5. ミドルウェアの使用
これで、アプリケーション内の任意のルートまたはコントローラー メソッドでこれらのミドルウェアを使用できるようになります。たとえば、routes/web.php ファイルでは、次のように使用できます。

Route::middleware('query.log', 'performance')->group(function () {
    // 路由定义...
});

この例では、ルート グループにミドルウェアを適用する方法を示します。ミドルウェアを個々のルートまたはコントローラー メソッドに適用することもできます。

結論:
Laravel のミドルウェア テクノロジを使用すると、データベース クエリとパフォーマンス監視機能をアプリケーションに簡単に追加できます。上に示したように、データベース クエリ ログを記録するために QueryLogMiddleware を作成し、アプリケーションのパフォーマンスを監視するために PerformanceMiddleware を使用しました。これらのミドルウェアは、簡単な登録と使用でアプリケーションを強化し、より強力で信頼性の高いものにすることができます。

以上がLaravel ミドルウェア: データベースのクエリとパフォーマンスの監視をアプリケーションに追加します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。