App\Routing
RouteBuilder
Fluent Builder für die Konfiguration einer einzelnen Route. Wird automatisch von den Router-Methoden zurückgegeben und ermöglicht das Verketten von Aufrufen.
Der RouteBuilder wird nicht direkt instanziiert. Er wird von Methoden wie
$router->get(), $router->post() usw. zurückgegeben.Methoden-Übersicht
| Methode | Rückgabetyp | Beschreibung |
|---|---|---|
| name(?string $name) | RouteBuilder | Benennt die Route für URL-Generierung via $router->url(). |
| middleware(string ...$middleware) | RouteBuilder | Fügt route-spezifische Middleware hinzu (vollständige Klassennamen). |
| where(string $param, string $regex) | RouteBuilder | Definiert einen Regex-Constraint für einen URL-Parameter. |
| whereNumber(string $param) | RouteBuilder | Parameter muss eine Ganzzahl sein (\d+). |
| whereAlpha(string $param) | RouteBuilder | Parameter darf nur Buchstaben enthalten ([a-zA-Z]+). |
| whereAlphaNumeric(string $param) | RouteBuilder | Parameter darf Buchstaben und Ziffern enthalten. |
| whereSlug(string $param) | RouteBuilder | Parameter muss ein URL-Slug sein (z.B. mein-artikel-123). |
| whereUuid(string $param) | RouteBuilder | Parameter muss eine UUID v4 sein. |
Beispiele
PHP – Method Chaining
// Benannte Route mit Constraint und Middleware
$router->get('/users/{id}', UserController::class, 'show')
->name('users.show')
->whereNumber('id')
->middleware(AuthMiddleware::class);
// Artikel mit Slug
$router->get('/blog/{slug}', BlogController::class, 'show')
->name('blog.show')
->whereSlug('slug');
// UUID-basierte Route
$router->delete('/items/{uuid}', ItemController::class, 'destroy')
->name('items.destroy')
->whereUuid('uuid')
->middleware(AuthMiddleware::class, CsrfMiddleware::class);
// Eigener Regex-Constraint
$router->get('/years/{year}', ArchiveController::class, 'byYear')
->where('year', '20\d{2}'); // Nur Jahre 2000–2099