public function call(Context $context) { $currentHost = $context->getRequest()->getHost(); $currentProtocol = $context->getRequest()->getProtocol(); $currentUrl = $context->getRequest()->getUrl(); $currentMethod = $context->getRequest()->getHttpMethod(); // Identify current Command; register RouteMap & params with Context $route; try { $route = $this->routeMap->getRoute($context->getRequest()); } catch (RouteException $e) { throw new NotFoundException(sprintf("Route not found for request: %s %s://%s%s", $currentMethod, $currentProtocol, $currentHost, $currentUrl)); } $context->setProp(self::CURRENT_ROUTE, $route); // Force pages to their designated protocol if specified if ($route->getProtocol() != null) { if ($currentProtocol != $route->getProtocol()) { $url = Url::fromString(sprintf("%s://%s/", $route->getProtocol(), $currentHost))->join($currentUrl)->addParams($_GET); throw new RedirectException('Change Protocol', 301, $url); } } $this->wrappedApp->call($context); }