Laravel Middleware: Schritt für Schritt
In Laravel ist es möglich vor die Ausgabe nachträglich zu bearbeiten. Das kann man zum Beispiel für Komprimierungen oder Caching nutzen, aber auch fürs Tracking.
Am einfachsten erstellt man eine Middleware über Artisan:
php artisan make:middleware TrackingMiddleware
Die daraus erstellte Klasse befindet sich unter app/HTTP/Middleware und sieht so aus:
<?php namespace App\Http\Middleware; use Closure; class TrackingMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $next($request); } }
In die Funktion handle
kann man nun eigene Aktionen packen.
Die Middleware lässt sich vor oder nach dem Controller aufrufen. Standardmäßig wird es davor ausgeführt, aber die Umstellung ist nicht sehr schwer:
<?php namespace App\Http\Middleware; use Closure; class TrackingMiddleware { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $res = $next($request); //Eigener Code return $res; } }
Der Rest der Seite wird im Closure ausgeführt. Als Ergebnis bekommt man das Response-Objekt, in dem man dann zum Beispiel noch Cookies setzen kann.
Middleware registrieren
Jetzt muss die Middleware noch registriert werden. Das geht über die Datei app/Http/Kernel.php. Darin gibt es die Eigenschaft $middleware, in dem die Klasse dann hinzugefügt werden kann:
protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\MyMiddleware::class, ];
Über uns

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project
Karriere bei a coding project - Wir freuen uns auf dich!
Alle unsere Stellen sind Remote oder an unseren Standorten in Münster und Wuppertal verfügbar:
- PHP-Entwickler (m/w/d) mit Fokus Laravel
- Frontend-Entwickler (m/w/d)
- Technischer Kundenbetreuer (m/w/d)
// Warum Du Dich für uns entscheiden solltest
- Regelmäßig neue Projekte, die Du von Grund an mit planen und aufbauen kannst
- Arbeit in einem wachsenden IT-Unternehmen
- So viel Home-Office wie Du möchtest - Und einen Arbeitsplatz in unserem Büro in Münster
- Wöchentliche Vorträge: Jeden Freitag hält ein Mitarbeiter einen Vortrag über ein Fachthema seiner Wahl