Вы читаете предварительную версию v0.1. API могут измениться.
~ 1 мин чтенияОбновлено 2026-10-29

Промежуточные обработчики

Middleware оборачивает следующий этап обработки запроса. Реализуйте интерфейс Middleware Elang.

Создание middleware

namespace App;

use Closure;
use Elang\Contracts\Middleware;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

final class AddHeader implements Middleware
{
    public function process(Request $request, Closure $next): Response
    {
        $response = $next($request);
        $response->headers->set('X-Application', 'My Elang app');
        return $response;
    }
}

Регистрация middleware

Используйте $app->middleware(AddHeader::class) в файле начальной загрузки для глобального middleware или ->middleware(AddHeader::class) для middleware маршрута. Запрос проходит middleware в порядке регистрации, а ответ возвращается через них в обратном порядке.

Сессии и CSRF

use Elang\Http\Middleware\SessionMiddleware;
use Elang\Http\Middleware\CsrfMiddleware;

$app->middleware(SessionMiddleware::class, CsrfMiddleware::class);

Middleware сессии должен выполняться перед middleware CSRF. После этого небезопасные методы требуют совпадающий токен сессии в _token или заголовке X-CSRF-Token. Для API-эндпоинтов без состояния нужна собственная схема аутентификации; сама по себе защита CSRF не аутентифицирует вызывающую сторону.

Ограничение частоты запросов

Подключайте RateLimitMiddleware к публичным группам API. Он использует общий файловый кеш и межпроцессные блокировки на одном хосте. Для развёртывания на нескольких серверах нужны общее хранилище ограничителя и общий механизм блокировок.

Нужна помощь?

Проверьте руководство по решению проблем, найдите термин в глоссарий, или пройдите полноценный проект доски задач.

Поиск по документации Elang

Начните вводить, чтобы найти следующий шаг.