예제 #1
0
 /**
  * @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);
     }
 }
예제 #2
0
 /**
  * @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());
     }
 }