Ejemplo n.º 1
0
 /**
  * Match request against given route
  *
  * @param \Janeiro\Request\AbstractRequest $request
  * @param array &$route
  * @throws \Janeiro\Mvc\Exception
  * @return int|bool
  */
 private function match(AbstractRequest $request, &$route)
 {
     $match = false;
     $pattern = str_replace('/', '\\/', trim($route['pattern'], '/'));
     $pattern = str_replace(array_keys(self::$expressions), array_values(self::$expressions), $pattern);
     if (preg_match('/^' . $pattern . '$/', implode('/', $request->get()), $matches)) {
         if (false === empty($route['parameters']['deny'])) {
             throw new Exception('access denied');
         }
         $match = $this->rate($route['parameters'], $matches);
     }
     return $match;
 }