Aktueller Standort: Startseite> Neueste Artikel> Mit Middleware in Laravel werden Datenbankabfrage und Leistungsüberwachung implementiert

Mit Middleware in Laravel werden Datenbankabfrage und Leistungsüberwachung implementiert

M66 2025-06-19

Mit Middleware in Laravel werden Datenbankabfrage und Leistungsüberwachung implementiert

Datenbankabfragen und Leistungsüberwachung sind bei der Entwicklung von Webanwendungen sehr wichtig. Laravel bietet einen leistungsstarken Middleware -Mechanismus, der den Entwicklern helfen kann, diese Anforderungen zwischen Anforderungen und Antworten zu erfüllen. Middleware kann Logik ausführen, bevor die Anforderung den Controller erreicht oder nach der Rückkehr der Antwort an den Benutzer. In diesem Artikel wird vorgestellt, wie Datenbankabfrage -Protokollierung und Leistungsüberwachungsfunktionen über Laravel Middleware implementiert werden.

1. Erstellen Sie Middleware

Zunächst müssen wir eine Middleware erstellen. Durch Ausführen des folgenden Befehls können wir eine Middleware namens QuerylogMiddleware erstellen:

 php artisan make:middleware QueryLogMiddleware

Dieser Befehl generiert eine `querylogMiddleware.php` -Datei im Verzeichnis" app/http/Middleware ". Jetzt können wir Middleware Logic in diese Datei schreiben.

2. Implementieren Sie die Datenbankabfrage -Protokollfunktion

Um das Datenbank -Query -Protokoll aufzuzeichnen, können wir die DB -Fassade von Laravel in der "Handle" -Methode der Middleware verwenden, um alle SQL -Abfragen zu erhalten und sie in die Protokolldatei zu protokollieren. Hier ist ein Beispielcode:

 <?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\DB;

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

        $response = $next($request);

        // Holen Sie sich Query -Protokoll
        $queries = DB::getQueryLog();

        foreach ($queries as $query) {
            // Wille$querySchreiben Sie in Protokolldateien
        }

        return $response;
    }
}

Im obigen Code `db :: Connection ()-> enableQuerylog ()` Ermöglicht die Abfrageprotokollierung. Indem wir die Methode db :: getQueryLog () aufrufen, erhalten wir alle Abfrageboten und können jede Abfrage darin durchqueren und aufzeichnen.

3. Fügen Sie Leistungsüberwachungsfunktion hinzu

Zusätzlich zum Aufzeichnungsdatenbank -Abfrageprotokoll können wir auch Middleware verwenden, um Leistungsüberwachungsfunktionen zu implementieren. Zum Beispiel können wir Laravels Debugbar -Erweiterung verwenden, um die Reaktionszeit der Anwendung zu überwachen. Hier ist ein Beispielcode:

 <?php

namespace App\Http\Middleware;

use Closure;
use Barryvdh\Debugbar\Facade as Debugbar;

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

        $response = $next($request);

        $end = microtime(true);
        $executionTime = $end - $start;

        // Fügen Sie Leistungsüberwachungsdaten hinzu
        Debugbar::addMeasure('Execution Time', $start, $end);

        return $response;
    }
}

Im obigen Code verwenden wir die Fassade von Debugbar, um eine Leistungsmetrik mit dem Namen "Ausführungszeit" hinzuzufügen und die Ausführungszeit der Anfrage zu berechnen. Sie können auch andere Leistungsüberwachungsmetriken hinzufügen, z. B. die Anzahl der Datenbankabfragen, Speicherverbrauch usw.

4. Registrieren Sie Middleware

Als nächstes müssen wir diese Middleware in der Anwendung registrieren. Öffnen Sie die Datei "App/HTTP/Kernel.php" und fügen Sie den folgenden Code zur Eigenschaft "$ MiddlewareGroups" hinzu:

 protected $middlewareGroups = [
    'web' => [
        // Andere Middleware...
        \App\Http\Middleware\QueryLogMiddleware::class,
        \App\Http\Middleware\PerformanceMiddleware::class,
    ],
];

Dies fügt der Web Middleware -Gruppe QuerylogMiddleware und Performancemiddleware hinzu, dh sie werden während jeder Webanforderung ausgeführt.

5. Middleware verwenden

Jetzt können wir diese Middleware in jeder Routing- oder Controller -Methode der Anwendung verwenden. In der Datei "Routes/Web.php" können wir beispielsweise Folgendes verwenden:

 Route::middleware(['query.log', 'performance'])->group(function () {
    // Routing -Definition...
});

In diesem Beispiel wird angezeigt, wie Middleware auf Routing -Gruppen angewendet wird. Sie können sie auch auf eine einzelne Route oder eine Controller -Methode anwenden.

abschließend

Durch die Verwendung von Laravels Middleware können wir unseren Anwendungen problemlos Datenbankabfrage- und Leistungsüberwachungsfunktionen hinzufügen. Wir haben ein "queryLogmiddleware" erstellt, um das Datenbank -Abfrageprotokoll aufzuzeichnen und die Leistung der Anwendung über "Performancemiddleware" zu überwachen. Diese Middlewares sind sehr einfach zu registrieren und zu verwenden, verbessern jedoch die Überwachung und Wartbarkeit der Anwendung erheblich.