Performance: Registering middleware
This affects the request handling speed and response time by adding processing steps before or after the main application logic.
protected $routeMiddleware = ['check.user' => \App\Http\Middleware\CheckUser::class]; // Apply middleware only on specific routes Route::middleware(['check.user'])->group(function () { Route::get('/dashboard', function () { // Controller logic here }); });
protected $middleware = [\App\Http\Middleware\CheckUser::class];| Pattern | Middleware Runs On | Processing Overhead | Response Time Impact | Verdict |
|---|---|---|---|---|
| Global Middleware | All requests | High | Increases latency on all requests | [X] Bad |
| Route-specific Middleware | Selected routes only | Low | Minimal impact on unrelated requests | [OK] Good |
Kernel.php file?Kernel.php makes it available to assign to routes or groups.checkAge in app/Http/Kernel.php?Kernel.php, route middleware are registered as key-value pairs with the key as the name and value as the class reference.::class keyword.Kernel.php snippet, what middleware will be applied when accessing the route /profile?
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'verified' => \App\Http\Middleware\EnsureEmailIsVerified::class,
];
Route::middleware(['auth', 'verified'])->get('/profile', function () {
return 'User Profile';
});$routeMiddleware.['auth', 'verified'].Kernel.php:
protected $routeMiddleware = [
'admin' => App\Http\Middleware\AdminCheck,
];::class keyword to provide the full class name as a string.::class after App\Http\Middleware\AdminCheck.$routeMiddleware in Kernel.php with a key name.middleware('name') to apply it.Kernel.php under $routeMiddleware with a name, then apply it in the route group using middleware('name') -> Option DPass the test and this pattern moves unknown