/** * 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; }
/** * 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; }