← Назад к вопросам

Что такое middleware в Laravel? Приведите примеры использования.?

2.0 Middle🔥 221 комментариев
#Фреймворки#Архитектура и паттерны

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое middleware в Laravel?

Middleware — это слой обработки HTTP-запросов между клиентом и приложением. Выполняется до попадания в контроллер и может обработать ответ после.

Структура middleware

class CheckAge {
    public function handle(Request $request, Closure $next) {
        if ($request->age < 200) {
            return redirect('/home');
        }
        $response = $next($request);
        $response->header('X-Check-Age', 'true');
        return $response;
    }
}

Типы middleware

1. Global - выполняется для каждого запроса 2. Route - назначается конкретным маршрутам 3. Groups - группы middleware

Примеры использования

Аутентификация:

class Authenticate {
    public function handle(Request $request, Closure $next) {
        if (!auth()->check()) {
            return redirect('/login');
        }
        return $next($request);
    }
}

Rate Limiting:

class RateLimitMiddleware {
    public function handle(Request $request, Closure $next) {
        $key = 'rate:' . $request->ip();
        if (Cache::get($key, 0) >= 60) {
            return response('Too many requests', 429);
        }
        Cache::increment($key, 1, 60);
        return $next($request);
    }
}

CORS:

class CorsMiddleware {
    public function handle(Request $request, Closure $next) {
        $response = $next($request);
        return $response->header('Access-Control-Allow-Origin', '*');
    }
}

Логирование:

class LogRequests {
    public function handle(Request $request, Closure $next) {
        Log::info('Request', ['method' => $request->method()]);
        $response = $next($request);
        return $response;
    }
}

Проверка прав:

class IsAdmin {
    public function handle(Request $request, Closure $next) {
        if (!auth()->user()?->isAdmin()) {
            abort(403);
        }
        return $next($request);
    }
}

Регистрация

Route middleware в app/Http/Kernel.php:

protected $routeMiddleware = [
    'auth' => Authenticate::class,
    'admin' => IsAdmin::class,
];

Route::delete('/users/{id}', [UserController::class, 'destroy'])
    ->middleware('auth', 'admin');

Middleware выполняют роль фильтра для обработки запросов и ответов.

Что такое middleware в Laravel? Приведите примеры использования.? | PrepBro