/** * @return void */ protected function matchRoute() { if (isset($this->routeCollection)) { $context = new WebRequestContext(); $context->fromWebRequest($this->request); $matcher = new RouteMatcher($this->routeCollection, $context); try { Logger::debug('Looking for route match: ' . $this->request->getPathInfo()); $parameters = $matcher->match($this->request->getPathInfo()); if (is_array($matcher->getRouteOption('parameters'))) { $this->parameters = array_merge($this->parameters, $matcher->getRouteOption('parameters')); } } catch (ResourceNotFoundException $ex) { // Use our DefaultController $parameters = $this->getDefaultController(); } } else { // no route to match against, so use the DefaultController $parameters = $this->getDefaultController(); } if (!isset($parameters)) { Logger::alert('Route not found'); } else { $this->parseRouteParameters($parameters); Logger::debug('Route matched: ' . $this->route); } }
/** * @param WebRequest $request Object containing the HTTP request */ public function fromWebRequest(WebRequest $request) { $this->setBaseUrl($request->getBaseUrl()); $this->setPathInfo($request->getPathInfo()); $this->setMethod($request->getMethod()); $this->setHost($request->getHost()); $this->setScheme($request->getScheme()); $this->setHttpPort($request->isSecure() ? $this->getHttpPort : $request->getPort()); $this->setHttpsPort($request->isSecure() ? $request->getPort() : $this->getHttpsPort()); if (class_exists('\\Mobile_Detect') && $request->getDevice() instanceof \Mobile_Detect) { $this->setDevice($request->getDevice()); } }