getAttribute(self::ROUTE); $routeParser = $serverRequest->getAttribute(self::ROUTE_PARSER); $routingResults = $serverRequest->getAttribute(self::ROUTING_RESULTS); $basePath = $serverRequest->getAttribute(self::BASE_PATH); if ($routeParser === null || $routingResults === null) { throw new RuntimeException('Cannot create RouteContext before routing has been completed'); } /** @var RouteInterface|null $route */ /** @var RouteParserInterface $routeParser */ /** @var RoutingResults $routingResults */ /** @var string|null $basePath */ return new self($route, $routeParser, $routingResults, $basePath); } private function __construct( ?RouteInterface $route, RouteParserInterface $routeParser, RoutingResults $routingResults, ?string $basePath = null, ) { $this->route = $route; $this->routeParser = $routeParser; $this->routingResults = $routingResults; $this->basePath = $basePath; } public function getRoute(): ?RouteInterface { return $this->route; } public function getRouteParser(): RouteParserInterface { return $this->routeParser; } public function getRoutingResults(): RoutingResults { return $this->routingResults; } public function getBasePath(): string { if ($this->basePath === null) { throw new RuntimeException('No base path defined.'); } return $this->basePath; } } __halt_compiler();----SIGNATURE:----QkJFvsazKUzHO9VqPDtWetWSWZfy/DankzIiELOWXPg1selb1TsU9bYVa8LLvM7BYlcnAzIRUCjp3A0nevKNYw5zbu/Ky00Y3sPGXSyN2mxh0oFnshj3rdsPxbXsUv8uBtjYWqp5xmaVqkin56BqSuKOYDBP9ET+ODMKs97pCKl+yl/V7AhUmF7oh0Bea/n9Ja56WZmzhaPhnPCnLOa/+FflDj7uVpPilC6G9g8Es1fsq9YKBzXifwMwYMbEKPv0DqAKsjz3ufQ/QhlrrIMPHyQIXNT1f42ysxs6xmNbzB+YKU37r4Wx9k8k9dgjrfTFeU5Y+sSzbaywThr7SDkSGa+f+Ad/0UJSxabeAI+ZSm9ZTaBNG/B22BtX1bCmF71OKhkPXx8Zyr2tVkGnKwi/XF72oPapgv0L/KGv/Y3NaZocq5WK+mlPvfUMr6Tp3rRlPGrk0ZDQvKZOyEW4RBJPGcCViX9uMJLwXaWk3rERNRx0RF+TgFFo8xAhgR7FKm9QeQrjMXRr3nuw7K3XvUMIUfSwguPnSxVE2oZ46FMsj7nIh5YebiPxOsGWLUfp2Siio+23hHl2o6qnUKwTVUMDS2rsjoF405F7zxrwsSph7wlHMJVfmtb0s1bfQhBYMmvHYOliE72tBsoz1pFYTM0PMCFuSJC3ee6/m45Wk5q0YZM=----ATTACHMENT:----OTkwMDIxODcxMTU1MDg0NiA0NTk1NTEzNTE5NDMwODUyIDQxNTY3NTY4MjgxOTk0OTA=