Esempio n. 1
0
 /**
  * Process the request.
  *
  * @return Route
  */
 public static function process()
 {
     $requestPath = Request::pathInfo();
     if (Request::pathInfo() === '/') {
         return static::getRoute('root');
     }
     foreach (static::$routes as $route) {
         $pattern = static::regex($route->compiledPath());
         if (!in_array(Request::$method, array_map('strtoupper', $route->methods))) {
             continue;
         }
         // Match exact path and request method
         if ($route->path == $requestPath) {
             $route->params = $route->defaults;
             Request::$properties->set($route->params);
             return $route;
         } elseif (preg_match($pattern, $requestPath, $params)) {
             unset($params[0]);
             // Merge params
             $route->params = $params + $route->defaults;
             Request::$properties->set($route->params);
             return $route;
         }
     }
 }
Esempio n. 2
0
 /**
  * Creates the URI for the specified page.
  *
  * @param integer $page
  *
  * @return string
  */
 public function createUri($page)
 {
     $queryString = $this->query;
     $queryString[] = "page={$page}";
     $queryString = implode('&', $queryString);
     return Request::pathInfo() . "?{$queryString}";
 }