Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung von Laravel Middleware: Leitfaden zum Prinzip der Analyse und der praktischen Fähigkeiten

Detaillierte Erläuterung von Laravel Middleware: Leitfaden zum Prinzip der Analyse und der praktischen Fähigkeiten

M66 2025-08-07

Laravel Middleware -Übersicht

Im Laravel -Framework ist Middleware ein wichtiger Bestandteil des Prozesses der Bearbeitung von HTTP -Anfragen und wird häufig für Funktionen wie Authentifizierung, Berechtigungsüberprüfung, Protokollierung und Änderung der Anfrage verwendet. Es bietet eine flexible und elegante Möglichkeit, Anfragen abzufangen und zu verarbeiten, wodurch die logische und strukturiertere Logik der Anwendung strukturierter wird.

Arbeitsmechanismus von Middleware

Die Middleware von Laravel befindet sich im Verzeichnis der App/HTTP/Middleware und kann über den Handwerksanfänger oder manuell erstellt werden. Middleware ist im Wesentlichen eine Klasse, die Anfragen erhält und Antworten zurückgibt. Die Kernfunktion ist handle () , das ein Anforderungsobjekt und einen Verschluss akzeptiert. Nach der Verarbeitung der Logik wird die Anfrage übergeben oder direkt an die Antwort zurückgegeben.

Wenn eine HTTP -Anforderung die Anwendung erreicht, führt das System jede Middleware nach der Middleware -Registrierungsauftrag aus. Wenn eine Middleware eine Antwort zurückgibt, wird der anschließende Verarbeitungsprozess abgebrochen und das Ergebnis direkt an den Client zurückgegeben.

Registrieren Sie Global und Routing Middleware

Die Middleware -Registrierung ist in zwei Arten unterteilt: globale Registrierung und Routing -Registrierung. Die Global Middleware wirkt auf alle Anfragen und ist in der $ Middleware -Eigenschaft in der App/http/kernel.php -Datei definiert:

 protected $middleware = [
    \App\Http\Middleware\CheckToken::class,
];

Wenn Sie nur möchten, dass die Middleware auf eine bestimmte Route reagiert, können Sie $ routemiddleware verwenden, um sich zu registrieren:

 protected $routeMiddleware = [
    'checkRole' => \App\Http\Middleware\CheckRole::class,
];

Beziehen Sie sich dann auf die Middleware -Methode in der Route:

 Route::get('/admin', function () {
    // Backend -Seite
})->middleware('checkRole');

Die Ausführungsreihenfolge von Middleware

Die Bestellung, in der Middleware ausgeführt wird, hängt von seiner Registrierungsauftrag ab. Global Middleware wird in der Reihenfolge von Arrays ausgeführt, während Routing Middleware in der Reihenfolge der Anordnung in Routendefinitionen ausgeführt wird. Sie können den Befehl PHP Artisan Route: List verwenden, um die Verwendung von Middleware anzuzeigen.

Middleware -Gruppierung

Wenn mehrere Routen dieselbe Middleware -Sammlung teilen, kann die Verwaltung durch Gruppierung vereinfacht werden. Zum Beispiel:

 Route::group(['middleware' => 'admin'], function () {
    // Alle Hintergrundrouten
});

Zu diesem Zeitpunkt lädt alle Routen in der Gruppe automatisch die Admin -Middleware.

Praktisches Beispiel: Erstellen Sie eine Authentifizierung Middleware

Im Folgenden ist ein Authentifizierungsbeispiel, um die spezifische Anwendung von Middleware anzuzeigen:

1. Erstellen Sie Middleware:

 php artisan make:middleware Authenticate

2. Schreiben Sie Middleware Logic:

 <?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Authenticate
{
    public function handle(Request $request, Closure $next)
    {
        $token = $request->header('Authorization');

        if ($token != 'secret_token') {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        return $next($request);
    }
}

3. Middleware registrieren:

 protected $middleware = [
    \App\Http\Middleware\Authenticate::class,
];

4. Auf Routing beantragt:

 Route::get('/api', function () {
    // Geschützte Schnittstelle
})->middleware('auth');

Diese Middleware überprüft das Feld der Autorisierung im Anforderungsheader. Wenn das voreingestellte Token nicht übereinstimmt, gibt es direkt einen 401 -Fehler zurück. Andernfalls wird die Anfrage weiterhin bearbeitet.

Zusammenfassen

Laravel Middleware bietet Entwicklern leistungsstarke und flexible Möglichkeiten, HTTP -Anforderungen abzufangen und zu verarbeiten. Durch die rationale Verwendung von Middleware kann die Controller -Logik vereinfacht werden, die Systemsicherheit und die Wartbarkeit können verbessert werden. Durch das Beherrschen der Prinzipien und Anwendungsfähigkeiten von Middleware können robustere Webanwendungen erstellt werden.