public function DynamicRouter::matchRequest

Tries to match a request with a set of routes and returns the array of information for that route.

If the matcher can not find information, it must throw one of the exceptions documented below.

Parameters

Request $request The request to match:

Return value

array An array of parameters

Throws

ResourceNotFoundException If no matching resource could be found

MethodNotAllowedException If a matching resource was found but the request method is not allowed

Overrides RequestMatcherInterface::matchRequest

File

drupal/core/vendor/symfony-cmf/routing/Symfony/Cmf/Component/Routing/DynamicRouter.php, line 199

Class

DynamicRouter
A flexible router accepting matcher and generator through injection and using the RouteEnhancer concept to generate additional data on the routes.

Namespace

Symfony\Cmf\Component\Routing

Code

public function matchRequest(Request $request) {
  if (!empty($this->uriFilterRegexp) && !preg_match($this->uriFilterRegexp, $request
    ->getPathInfo())) {
    throw new ResourceNotFoundException("{$request->getPathInfo()} does not match the '{$this->uriFilterRegexp}' pattern");
  }
  $matcher = $this
    ->getMatcher();
  if ($matcher instanceof UrlMatcherInterface) {

    // the match method will enhance the route $defaults
    return $this
      ->match($request
      ->getPathInfo());
  }
  $defaults = $matcher
    ->matchRequest($request);
  return $this
    ->applyRouteEnhancers($defaults, $request);
}