. */ declare(strict_types=1); namespace Fisharebest\Webtrees\Http\Middleware; use Aura\Router\RouterContainer; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\RequestHandlerInterface; use function app; use function parse_url; use const PHP_URL_PATH; /** * Load the routing table. */ class LoadRoutes implements MiddlewareInterface { /** * @param ServerRequestInterface $request * @param RequestHandlerInterface $handler * * @return ResponseInterface */ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $base_url = $request->getAttribute('base_url'); $base_path = parse_url($base_url, PHP_URL_PATH) ?? ''; $router_container = new RouterContainer($base_path); // Save the router in the container, as we'll need it to generate URLs. app()->instance(RouterContainer::class, $router_container); // Load the routing table. require __DIR__ . '/../../../routes/web.php'; return $handler->handle($request); } }