/**
  * Creates a new route definition
  *
  * @param string $pattern
  * @param string $handler
  * @param array $httpMethods
  *
  * @return RouteDefinition
  */
 public function create($pattern, $handler, array $httpMethods = null)
 {
     $pattern = static::preparePattern($pattern);
     $route = new RouteDefinition($pattern, static::createRegex($pattern), $handler, $httpMethods);
     $route->setAnnotationReader($this->annotationReader);
     $route->setHandlerContainer($this->handlerContainer);
     return $route;
 }
Exemplo n.º 2
0
 /**
  * Returns the requested path
  *
  * @param RouteDefinition $route
  * @param Request $request
  * @return string
  */
 protected function getRequestedPath(RouteDefinition $route, Request $request)
 {
     $pattern = rtrim($route->getPattern(), '/*');
     $regex = RouteDefinitionCreator::createRegex($pattern, false);
     $path = preg_replace($regex, '', $request->getRequestedPath());
     if (substr($path, 0, 1) != '/') {
         $path = '/' . $path;
     }
     if ($path != '/') {
         $path = rtrim($path, '/');
     }
     return $path;
 }