SchöpfungsSchnipsel

Tutorial: Eigene Middleware in Laravel erstellen und nutzen


Tutorial: Eigene Middleware in Laravel erstellen und nutzen, Middleware in Laravel fungiert als "Wächter" für deine Anfragen und Antworten. Sie befinden sich zwischen einer Anfrage eines Benutzers und der Antwort deiner Anwendung. Mit Middleware kannst du bestimmte Aktionen durchführen, bevor eine Anfrage an deinen Controller weitergegeben wird, oder nachdem eine Antwort generiert wurde. Beispiele für Middleware sind Authentifizierung, Logging, Caching, und vieles mehr. In diesem Tutorial zeige ich dir, wie du eine eigene Middleware in Laravel erstellst und effektiv nutzt. Wir werden eine Middleware erstellen, die den Zugriff auf eine Route basierend auf dem Alter des Benutzers einschränkt – ein Klassiker für Websites mit altersbeschränktem Inhalt.

Schritt 1: Eine neue Middleware erstellen


Laravel bietet einen Artisan-Befehl, um eine neue Middleware zu erstellen. Öffne dein Terminal und navigiere zu deinem Laravel-Projektordner. Führe den folgenden Befehl aus, um eine neue Middleware namens CheckAge zu erstellen:

php artisan make:middleware CheckAge

INFO:Dieser Befehl erstellt eine neue Datei CheckAge.php im Ordner app/Http/Middleware.

Schritt 2: Middleware bearbeiten


Jetzt, da unsere Middleware erstellt wurde, öffnen wir die Datei CheckAge.php im Verzeichnis app/Http/Middleware. In dieser Datei können wir die Logik definieren, die vor der Weiterleitung der Anfrage ausgeführt wird. In unserem Fall wollen wir überprüfen, ob der Benutzer mindestens 18 Jahre alt ist.

<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; class CheckAge { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle(Request $request, Closure $next) { // Prüfe, ob der 'age'-Parameter in der Anfrage vorhanden und >= 18 ist if ($request->input('age') < 18) { // Wenn der Benutzer zu jung ist, leiten wir ihn zur 'home'-Seite um return redirect('home')->with('error', 'Du bist zu jung für diesen Bereich!'); } // Wenn der Benutzer mindestens 18 Jahre alt ist, wird die Anfrage fortgesetzt return $next($request); } }

Schritt 3: Middleware registrieren


Nachdem wir die Middleware erstellt haben, müssen wir sie in Laravel registrieren. Öffne dazu die Datei app/Http/Kernel.php. Dort gibt es zwei wichtige Bereiche, um Middleware zu registrieren:

$middleware: Diese Middleware wird global für jede Anfrage angewendet.
$routeMiddleware: Hier können wir benannte Middleware registrieren, die für spezifische Routen verwendet wird.


INFO:Wir werden unsere Middleware CheckAge im Bereich $routeMiddleware registrieren:

protected $routeMiddleware = [ // Andere Middleware... 'age' => \App\Http\Middleware\CheckAge::class, ];

Durch diese Registrierung kann unsere Middleware jetzt mit dem Namen age in Routen verwendet werden.

Schritt 4: Middleware auf eine Route anwenden


Nachdem wir unsere Middleware registriert haben, können wir sie auf eine bestimmte Route anwenden. Öffne die Datei routes/web.php und füge eine Route hinzu, die unsere age-Middleware verwendet:

Route::get('/restricted', function () { return 'Willkommen in der Erwachsenenwelt!'; })->middleware('age');

Diese Route nutzt die Middleware age, um sicherzustellen, dass nur Benutzer, die mindestens 18 Jahre alt sind, Zugriff erhalten.

Schritt 5: Testen der Middleware


Um zu testen, ob unsere Middleware funktioniert, können wir verschiedene URLs in unserem Browser aufrufen oder Postman verwenden. Angenommen, unser Laravel-Projekt läuft auf http://localhost:8000:

Wenn du zu http://localhost:8000/restricted?age=20 gehst, sollte die Seite „Willkommen in der Erwachsenenwelt!“ angezeigt werden.


Tipp:Wenn du zu http://localhost:8000/restricted?age=15 gehst, wirst du zur /home-Route umgeleitet und erhältst die Nachricht „Du bist zu jung für diesen Bereich!“.

Schritt 6: Weitere Tipps und Tricks


Middleware-Parameter: Du kannst auch Parameter an Middleware übergeben. Beispielsweise könntest du eine Middleware erstellen, die auf einer anderen Bedingung basiert (z. B. einer Altersgrenze, die als Parameter übergeben wird).

Route::get('/restricted', function () { return 'Willkommen in der Erwachsenenwelt!'; })->middleware('age:21');

n deiner Middleware kannst du dann den Parameter abfangen und verwenden:

public function handle(Request $request, Closure $next, $age) { if ($request->input('age') < $age) { return redirect('home')->with('error', 'Du bist zu jung für diesen Bereich!'); } return $next($request); }

Globale Middleware vs. Routen-Middleware


Verwende globale Middleware für Aufgaben, die auf jede Anfrage angewendet werden müssen, z. B. das Überprüfen von CSRF-Token. Verwende benannte Middleware für spezifische Routen, um deine Logik sauber und modular zu halten.

Mehrere Middleware auf eine Route anwenden:


Du kannst mehrere Middleware-Klassen auf eine einzige Route anwenden:

Route::get('/restricted', function () { return 'Willkommen!'; })->middleware(['auth', 'age']);

Fehlermeldungen und Debugging


Nutze dd() (Dump and Die) oder Log::info() innerhalb deiner Middleware, um Debugging-Informationen anzuzeigen und Probleme schnell zu identifizieren:

use Illuminate\Support\Facades\Log; public function handle(Request $request, Closure $next) { Log::info('Request Age:', ['age' => $request->input('age')]); // Weitere Middleware-Logik... }

Middleware in Laravel ist unglaublich mächtig und flexibel. Sie ermöglicht es uns, eine Vielzahl von Aufgaben zwischen der Anfrage und der Antwort zu erledigen. Egal, ob es um Authentifizierung, Logging, Caching oder benutzerdefinierte Anforderungen geht – Middleware ist ein unverzichtbares Werkzeug im Laravel-Werkzeugkasten. Also, experimentiere, sei kreativ und nutze die volle Kraft der Middleware für deine Anwendungen!

0 Kommentare

Bitte Loge dich ein um ein Kommentar zu Hinterlassen!

oder Login mit Google

StoryStube

Entdecken Sie spannende Neuigkeiten, praktische Tipps und hilfreiche Tricks rund um die neuesten Trends in meiner Branche. Bleiben Sie auf dem Laufenden mit meinen Beiträgen und innovativen Ideen...

Mehr Web-Leistung?
Jetzt unverbindlich anfragen!

Bereit für Neues?

Maßgeschneiderte Webentwicklung für ein einzigartiges Nutzererlebnis

Programmieren mit Präzision

Einzigartige und Professionelle

  • Kreative Gestaltung von Website-Layouts.
  • Digitalisierung auf höchstem Niveau.
  • Kreative Lösungen, starke Webseiten.
  • Anwendung für eine schnelle und reibungslose Benutzererfahrung.

Kontakt

Kontaktieren Sie mich noch heute, um umfassende Informationen zu meinen Dienstleistungen zu erhalten und zu erfahren, wie ich Sie wirkungsvoll bei der Umsetzung Ihres Webprojekts unterstützen kann.

Captcha
Entdecken Sie die Leistungsfähigkeit von Laravel für individuelle Webentwicklung! - Maßgeschneiderte Webentwicklung für ein einzigartiges Nutzererlebnis!

Live-Programmierungssitzung buchen, Echtzeit-Programmierhilfe reservieren, Sofortige Hilfe bei der Programmierung anfordern, Live-Unterstützung für Programmierprojekte buchen, Personalisierte Programmierberatung buchen, Online-Programmier-Coaching vereinbaren, Virtuelle Programmierhilfe in Echtzeit erhalten, Direkte Programmierungshilfe online buchen, Interaktive Programmierunterstützung reservieren, Programmierexperten live konsultieren, Sofortige Hilfe von Entwicklern einholen, Echtzeit-Entwicklungsunterstützung anfordern, Persönliche Programmierungssitzung buchen, On-Demand-Programmierungshilfe buchen, Live-Entwicklerberatung in Anspruch nehmen, Programmierprobleme live besprechen, Maßgeschneiderte Programmierunterstützung vereinbaren, Online-Session mit Programmierexperten planen, Interaktive Lösungen für Programmieraufgaben reservieren, Live-Programmierhilfe sofort verfügbar machen,