# Посредники HttpSoft\Router
Классы посредников пакета HttpSoft\Router, реализующие Psr\Http\Server\MiddlewareInterface.
Все посредники содержат только один публичный метод Psr\Http\Server\MiddlewareInterface::process().
public function process(
Psr\Http\Message\ServerRequestInterface $request,
Psr\Http\Server\RequestHandlerInterface $handler
): Psr\Http\Message\ResponseInterface; # HttpSoft\Router\Middleware\RouteMatchMiddleware
Используя сборщик маршрутов, сопоставляет входящий запрос с добавленными маршрутами. При совпадении регистрирует экземпляр HttpSoft\Router\Route как атрибут запроса, используя имя класса HttpSoft\Router\Route в качестве имени атрибута, и передает запрос следующему посреднику. Если ни один маршрут не соответствует запросу, то запрос не будет модифицирован.
public function __construct(
HttpSoft\Router\RouteCollector $router,
Psr\Http\Message\ResponseFactoryInterface $responseFactory,
array $allowedMethods = ['HEAD'] // общие разрешенные методы запроса для всех маршрутов.
); Если URI запроса соответствует одному из маршрутов, но метод запроса не соответствует методу этого маршрута, то этот посредник вернет 405 ответ вместе с заголовком Allow, указывающим разрешенные методы маршрута.
# HttpSoft\Router\Middleware\RouteDispatchMiddleware
Проверяет наличие совпадающего маршрута (экземпляра HttpSoft\Router\Route) в качестве атрибута в запросе. Если он существует, то используется обработчик этого маршрута, иначе обработка запроса делегируется обработчику, который передается аргументом в метод process().
public function __construct(HttpSoft\Runner\MiddlewareResolverInterface $resolver); Если совпадающий маршрут был передан, то для резолвинга обработчика маршрута используется экземпляр HttpSoft\Runner\MiddlewareResolverInterface из пакета HttpSoft\Runner.
