FrameworkDocs
PHP 8.4+ UIkit 3 FA 6 Pro

Interface

Alle Middleware-Klassen implementieren App\Routing\MiddlewareInterface:

PHP
interface MiddlewareInterface
{
    public function handle(Request $request, Closure $next): Response;
}

Methoden

MethodeRückgabetypBeschreibung
__construct(int \$maxRequests = 60, int \$windowSeconds = 60)Konfiguriert das Rate-Limit. Standard: 60 Requests pro 60 Sekunden.
handle(Request \$request, Closure \$next)ResponseBereinigt abgelaufene Timestamps aus dem Session-Log, fügt aktuellen Timestamp hinzu. Wenn Anzahl > maxRequests: 429 mit Retry-After. Sonst: \$next(\$request).

Verwendung

PHP
// Standard: 60 Requests/Minute
$router->use(new RateLimitMiddleware());

// Angepasst: 10 Requests pro 10 Sekunden (streng)
$router->post("/api/login", AuthController::class, "login")
    ->middleware(new RateLimitMiddleware(10, 10));  // Achtung: Middleware-Instanzen anders übergeben

// Oder als Klasse:
$router->group("api", [CsrfMiddleware::class], function(Router $r) {
    // Alle API-Routen mit Rate-Limit
});

// Konfiguration als readonly-Properties
$mw = new RateLimitMiddleware(maxRequests: 100, windowSeconds: 3600);
// → Max. 100 Requests pro Stunde