suchen
HeimBackend-EntwicklungPHP-TutorialLaravel-Middleware verstehen: Ein tiefer Einblick in den neuen Ansatz von Laravel

Understanding Laravel Middleware: A Deep Dive into Laravel #s New Approach

Einführung in Middleware in Laravel

Middleware ist ein wesentliches Konzept in der modernen Webentwicklung und Laravel, ein beliebtes PHP-Framework, nutzt es häufig zur Verarbeitung von HTTP-Anfragen. Unabhängig davon, ob Sie eine einfache API oder eine umfangreiche Webanwendung erstellen, ist das Verständnis der Middleware in Laravel der Schlüssel zum Schreiben sauberer, besser verwaltbarer und effizienter Code.

In diesem Artikel tauchen wir tief in die Laravel-Middleware ein und erklären, was sie ist, warum Sie sie verwenden sollten und wie Sie sie effektiv nutzen können. Wir werden uns auch die Struktur der Middleware in Laravel 11 ansehen, die erhebliche Änderungen erfahren hat, einschließlich der Entfernung des HTTP-Kernels. Abschließend werden wir durch die Erstellung und Verwendung benutzerdefinierter Middleware in Laravel gehen.

Inhaltsverzeichnis

  1. Was ist Middleware?
  2. Warum Middleware verwenden?
  3. Arten von Middleware in Laravel
  4. Vorteile von Middleware
  5. Middleware-Struktur in Laravel 11
  6. So erstellen und verwenden Sie benutzerdefinierte Middleware
  7. Praktische Beispiele für den Einsatz von Middleware
  8. Best Practices für Middleware in Laravel
  9. Fazit

1. Was ist Middleware?

Middleware ist im Wesentlichen ein Filter oder eine Schicht, die zwischen der eingehenden HTTP-Anfrage und Ihrer Anwendung sitzt. Es fängt eingehende Anfragen ab und kann verschiedene Aufgaben wie Authentifizierung, Protokollierung und Anforderungsänderung ausführen, bevor die Anforderung an die nächste Ebene weitergeleitet wird. Nach der Verarbeitung kann die Middleware zulassen, dass die Anfrage an die Anwendung weitergeleitet wird, die Antwort ändert oder die Anfrage komplett ablehnt.

Einfacher ausgedrückt ist Middleware wie ein Sicherheitstor oder Wächter für Ihre Anwendung. Jede Anfrage an Ihre Anwendung muss die Middleware durchlaufen, und Sie können je nach Art der Anfrage unterschiedliche Verhaltensweisen definieren.

2. Warum Middleware verwenden?

Middleware bietet einen praktischen Mechanismus zum Filtern oder Ändern von HTTP-Anfragen, die in Ihre Anwendung eingehen. Hier sind einige häufige Gründe, warum Middleware in Laravel-Anwendungen verwendet wird:

Authentifizierung und Autorisierung: Middleware kann sicherstellen, dass nur authentifizierte Benutzer oder Benutzer mit bestimmten Berechtigungen auf bestimmte Routen zugreifen.
Wartungsmodus: Middleware kann prüfen, ob sich die Anwendung im Wartungsmodus befindet, und für alle eingehenden Anfragen eine Wartungsmeldung zurückgeben.
Protokollierung und Überwachung: Middleware kann jede Anfrage protokollieren oder die Leistung überwachen und Entwicklern so helfen, den Überblick über die Anwendungsleistung zu behalten.
CORS (Cross-Origin Resource Sharing): Middleware kann CORS-Header verarbeiten und Anfragen von externen Ursprüngen zulassen oder ablehnen.
Anforderungsänderung: Möglicherweise möchten Sie die Anforderungsdaten ändern, bevor sie Ihren Controller erreichen, z. B. Eingabezeichenfolgen kürzen oder Eingaben bereinigen.
Durch die Verwendung von Middleware halten Sie Ihre Anwendungslogik sauber und getrennt von übergreifenden Belangen wie Sicherheit, Protokollierung oder Anforderungsänderung.

3. Arten von Middleware in Laravel

In Laravel kann Middleware im Allgemeinen in drei Typen eingeteilt werden:

Globale Middleware
Globale Middleware wird auf jede HTTP-Anfrage angewendet, die in Ihrer Anwendung eingeht. Es wird einmal definiert und gilt automatisch für alle Routen. Beispielsweise möchten Sie möglicherweise die Protokollierung für jede an die Anwendung gestellte Anfrage aktivieren.

Routenspezifische Middleware
Diese Art von Middleware wird nur auf bestimmte Routen oder Routengruppen angewendet. Sie können es einzelnen Routen oder einer Gruppe von Routen zuordnen, die ein ähnliches Verhalten aufweisen. Beispielsweise könnten Sie die Authentifizierungs-Middleware nur auf Routen anwenden, die einen angemeldeten Benutzer erfordern.

Middleware-Gruppen
Mit Middleware-Gruppen können Sie mehrere Middleware definieren, die gemeinsam als Gruppe angewendet werden können. Laravel wird mit einigen Standard-Middleware-Gruppen ausgeliefert, z. B. den Web- und API-Gruppen. Diese Gruppen bündeln Middleware, die auf alle Web- bzw. API-Anfragen angewendet werden sollte.

4. Vorteile von Middleware

Middleware bietet Laravel-Entwicklern mehrere Vorteile:

1. Trennung von Belangen
Middleware hilft bei der Trennung von Bedenken, indem sie spezifische Logik vom Hauptanwendungsfluss isoliert. Dies erleichtert die Pflege und Erweiterung Ihrer Anwendung, da die Verantwortlichkeiten der Anwendung in verschiedene Ebenen unterteilt sind.

2. Wiederverwendbarkeit
Einmal definiert, kann Middleware über mehrere Routen und Anwendungen hinweg wiederverwendet werden. Dadurch wird sichergestellt, dass Sie die Middleware-Logik nur einmal schreiben und bei Bedarf anwenden.

3. Sicherheit
Mit Middleware können Sie sicherheitsrelevante Logik wie Authentifizierung und Autorisierung am Einstiegspunkt Ihrer Anwendung implementieren und so sicherstellen, dass nicht autorisierte Anfragen niemals Ihre Kernlogik erreichen.

4. Anpassung
Die Laravel-Middleware ist flexibel und anpassbar. Sie können Middleware erstellen, die Anfragen ändert, Benutzer basierend auf bestimmten Bedingungen umleitet oder Antworten manipuliert, bevor sie an den Client zurückgegeben werden.

5. Zentralisierte Fehlerbehandlung
Mit Middleware können Sie Fehler und Ausnahmen zentral verwalten. Sie können Ausnahmen oder Validierungsfehler abfangen und diese in Ihrer gesamten Anwendung einheitlich behandeln.

5. Middleware-Struktur in Laravel 11

Mit Laravel 11 gab es einige wichtige strukturelle Änderungen, insbesondere im Umgang mit Middleware. Vor Laravel 11 wurden alle Middleware-Konfigurationen in der Http-Kernel-Datei (app/Http/Kernel.php) verwaltet. Allerdings führt Laravel 11 einen saubereren und modulareren Ansatz ein.

Die Entfernung des HTTP-Kernels
In Laravel 11 wurde der HTTP-Kernel entfernt und Middleware ist jetzt in der Datei bootstrap/app.php konfiguriert. Für Entwickler, die mit der traditionellen HTTP-Kernel-Struktur vertraut sind, mag dies wie ein bedeutender Paradigmenwechsel erscheinen, aber es ermöglicht eine schlankere und flexiblere Möglichkeit, Middleware zu registrieren und zu verwalten.

So sieht die Standarddatei „bootstrap/app.php“ in Laravel 11 aus:

<?php return Application::configure()
    ->withProviders()
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        // api: __DIR__.'/../routes/api.php',
        commands: __DIR__.'/../routes/console.php',
        // channels: __DIR__.'/../routes/channels.php',
    )
    ->withMiddleware(function (Middleware $middleware) {
        //
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();
?>```



**Middleware Management**
In Laravel 11, middleware is now handled through the withMiddleware() method, which accepts a callable function. Inside this callable, you can register, modify, or remove middleware.

## 6. How to Create and Use Custom Middleware in Laravel
Creating custom middleware in Laravel allows you to extend the default behavior of your application. Here’s how to create and use custom middleware in Laravel:

Step 1: Create the Middleware
You can create middleware using the Artisan command:


php artisan make:middleware CheckAge
This command will create a new middleware class in the app/Http/Middleware directory. The newly created CheckAge.php file will look something like this:




```php
<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckAge
{
    /**
     * Handle an incoming request.
     */
    public function handle(Request $request, Closure $next)
    {
        if ($request->age ```



In this example, the CheckAge middleware checks the user's age and redirects them if they are under 18. If the user passes the condition, the request continues to the next layer.

**Step 2: Register the Middleware**
Since Laravel 11 no longer uses the Http Kernel, you will need to register your middleware in the bootstrap/app.php file. Here’s how you can register your custom middleware:




```php return Application::configure()
    ->withProviders()
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->alias('check.age', \App\Http\Middleware\CheckAge::class);
    })
    ->create();```



Now, your middleware alias check.age is available for use in your routes.

Step 3: Apply the Middleware to Routes
Once the middleware is registered, you can apply it to routes or route groups:




```php
<?php Route::get('/dashboard', function () {
    // Only accessible if age > 18
})->middleware('check.age');?>```



## 7. Practical Examples of Using Middleware
Middleware can be used for a variety of tasks in Laravel. Let’s look at a few practical use cases.

**Example 1: Logging Requests**
You can create middleware to log incoming requests to a file or a logging service. This can help you monitor the behavior of your application.



```php

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Log;
use Illuminate\Http\Request;

class LogRequest
{
    public function handle(Request $request, Closure $next)
    {
        Log::info('Request URL: ' . $request->url());

        return $next($request);
    }
}?>```



**Example 2: Checking User Roles**
You can use middleware to restrict access based on user roles. For example, only allow access to certain routes if the user has an admin role.



```php

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

class CheckRole
{
    public function handle($request, Closure $next)
    {
        if (Auth::user() && Auth::user()->role != 'admin') {
            return redirect('/home');
        }

        return $next($request);
    }
}?>```



## 8. Best Practices for Middleware in Laravel
Here are some best practices to follow when working with middleware in Laravel:

**1. Keep Middleware Focused**
Middleware should be responsible for a single task. If you find that your middleware is doing too much, consider splitting it into smaller, more focused middleware.

**2. Use Route-Specific Middleware**
Use route-specific middleware when possible. Applying middleware globally can lead to performance overhead and unnecessary checks on routes that don’t need them.

**3. Avoid Complex Logic**
Middleware should be kept simple. Complex logic or business rules should be handled in the controller








Das obige ist der detaillierte Inhalt vonLaravel-Middleware verstehen: Ein tiefer Einblick in den neuen Ansatz von Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Erklären Sie das Konzept der Unveränderlichkeit und warum es bei der Anwendungsentwicklung von Vorteil ist.Erklären Sie das Konzept der Unveränderlichkeit und warum es bei der Anwendungsentwicklung von Vorteil ist.Aug 16, 2025 am 01:18 AM

UnmutabilityMeansonceanObjectiscreated, Itcannotbechanged und AnyupdateresultsinanewObject.1.itPreventUnteredSyeffectsByeliminatingAccidentalModifications, sichergestellt, dass FunctionsCannotmutateinputParametersand -KeepingsharedstatePredictable.2.

Lösung zum Generieren von Excel -Dateien, die nicht in PHP mit Microsoft Excel geöffnet sindLösung zum Generieren von Excel -Dateien, die nicht in PHP mit Microsoft Excel geöffnet sindAug 15, 2025 pm 08:03 PM

Dieser Artikel zielt darauf ab, das Problem zu beheben, bei dem Excel -Dateien, die mit PHP generiert wurden, nicht in Microsoft Excel geöffnet werden können, sondern mit Chromverlängerungen geöffnet werden können. Durch die Analyse gemeinsamer Gründe und Bereitstellung von zwei Lösungen für die Änderung des inhaltlichen Typs und die Verwendung von PHPSPreadsheet-Bibliothek helfen wir Entwicklern, Excel-Dateien korrekt zu generieren und zu exportieren, die normal in Microsoft Excel geöffnet werden können.

Berechnen Sie die prozentuale Änderung der benachbarten Datenreihen in LaravelBerechnen Sie die prozentuale Änderung der benachbarten Datenreihen in LaravelAug 15, 2025 pm 07:57 PM

In diesem Dokument wird beschrieben, wie die prozentuale Änderung zwischen benachbarten Datenzeilen in einer Laravel -Sammlung berechnet wird. Wir werden die MAP () -Methode verwenden, um die Sammlung durchzusetzen und die prozentuale Änderung zwischen dem Strom und der nächsten Zeile zu berechnen und das Ergebnis dem neuen Feld "geändert" hinzuzufügen. Das Feld "geändert" der letzten Datenzeile wird auf 0 gesetzt.

Verwenden Sie Vimeo PHP-SDK, um private Domain-beschränkte private Videos zu erhaltenVerwenden Sie Vimeo PHP-SDK, um private Domain-beschränkte private Videos zu erhaltenAug 15, 2025 pm 07:45 PM

In diesem Dokument wird beschrieben, wie die Vimeo-PHP-SDK verwendet werden, um private Domänenvideos im Backend zu erhalten. Durch die Verwendung eines zertifizierten Zugriffstokens können Sie diese Videos still vom Backend erhalten, ohne dass der Front-End-Benutzer sich bei Vimeo anmelden muss. In diesem Artikel wird detailliert erläutert, wie ein zertifiziertes Zugangs -Token generiert und verwendet wird und Beispielcode und Vorsichtsmaßnahmen bereitgestellt werden.

Tutorial zur korrekten Berechnung der prozentualen Provision und der Ratenzahlung in PHPTutorial zur korrekten Berechnung der prozentualen Provision und der Ratenzahlung in PHPAug 15, 2025 pm 07:27 PM

In diesem Artikel wird ausführlich erläutert, wie die Gesamttransaktionsbetrag und Ratenzahlung, die prozentuale Provisionen in PHP enthält, genau berechnet werden. In Reaktion auf häufige Berechnungsfehler enthält dieses Tutorial korrekte Formeln, die auf mathematischen Prinzipien basieren, und kombiniert tatsächliche Code -Beispiele, um Entwicklern zu leiten, wie sie wichtige Probleme wie prozentuale Umwandlung, schwimmende Punktgenauigkeit und Dezimalformate in verschiedenen Regionen zur Gewährleistung der Genauigkeit der finanziellen Berechnungen leiten können.

Lösen Sie das Problem der JavaScript -Datenerfassung durch doppelte IDs in dynamisch generierten ElementenLösen Sie das Problem der JavaScript -Datenerfassung durch doppelte IDs in dynamisch generierten ElementenAug 15, 2025 pm 07:21 PM

Dieser Artikel zielt darauf ab, das Problem zu lösen, dass JavaScript/JQuery aufgrund der Duplikation von IDs in der Webentwicklung keine relevanten Daten korrekt erhalten kann. Indem wir die Bedeutung von ID -Einzigartigkeit im Detail erläutern, bieten wir zwei effiziente Lösungen: Eine besteht darin, eine eindeutige ID für dynamische Elemente zu generieren und sie mit relativen Selektoren zu kombinieren, um Daten zu erhalten. Das andere besteht darin, Daten direkt in klickbare Elemente einzubetten, wodurch die Datenvereinigung und die Erfassungslogik vereinfacht und die Robustheit und Wartbarkeit des Codes verbessert werden.

Berechnen Sie den Gesamtpreis- und Ratenzahlungsbetrag einschließlich Provisionen/Gebühren in PHP korrektBerechnen Sie den Gesamtpreis- und Ratenzahlungsbetrag einschließlich Provisionen/Gebühren in PHP korrektAug 15, 2025 pm 07:12 PM

Dieses Tutorial zielt darauf ab, bei der Berechnung des Gesamtpreises für Transaktionen und Raten mit Provisionen oder Gebühren gemeinsame logische Fehler in PHP zu beheben. Durch die Analyse des Problems des Umgangs mit Provisionen als Rabatte im Fehlercode wird eine einfache und direkte Additionsberechnungsmethode bereitgestellt, um die Genauigkeit des gesamten Transaktionsbetrags und der monatlichen Zahlung sicherzustellen und die durch unsachgemäße prozentuale Berechnung verursachte Betrag zu vermeiden.

Richtige Pose für das Übergeben von Objektmethoden als Rückruffunktionen in PHPRichtige Pose für das Übergeben von Objektmethoden als Rückruffunktionen in PHPAug 15, 2025 pm 07:03 PM

In diesem Artikel wird eingehend untersucht, wie Sie eine Objektmethode oder einen Verschluss als Rückruffunktion in PHP korrekt übergeben. Im Gegensatz zu Sprachen wie JavaScript verfügt PHP über seinen eigenen einzigartigen Verarbeitungsmechanismus für Anrufe. Wir unterscheiden den Unterschied zwischen der Zuweisung von Schließungen an Objekteigenschaften und der Definition von Klassenmethoden und verwenden den Instanzcode, um zu zeigen, wie statische Methoden und Instanzmethoden als Rückruffunktionen bestanden werden, um einen gemeinsamen Aufruf von undefinierten Methodenfehlern zu vermeiden und die Robustheit und Wartbarkeit des Codes sicherzustellen.

See all articles

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools