Example #1
0
 /**
  * Process request path with route pattern, retrieve parameters
  *
  * @param Request $request Source request
  * @param Route   $route   Route to be processed
  *
  * @return boolean
  */
 protected function process($request, $route)
 {
     $path = $route->getPath();
     if (preg_match($path->getRegExp(), $request->getPath())) {
         foreach ($path->getSegments() as $segment) {
             $values = array();
             if (preg_match($segment->getRegExp(), $request->getPath(), $values)) {
                 unset($values[0]);
                 $values = array_values($values);
                 $names = array_keys($segment->getParams());
                 $params = !empty($names) && count($names) == count($values) ? array_combine($names, $values) : array();
                 $params = $this->processParams($route, $params);
                 $request->setParams($params);
                 return true;
             }
         }
     }
     return false;
 }