public function NestedMatcher::matchRequest

Tries to match a request with a set of routes.

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/NestedMatcher/NestedMatcher.php, line 118

Class

NestedMatcher
A more flexible approach to matching. The route collection to match against can be dynamically determined based on the request and users can inject their own filters or use a custom final matching strategy.

Namespace

Symfony\Cmf\Component\Routing\NestedMatcher

Code

public function matchRequest(Request $request) {
  $collection = $this->routeProvider
    ->getRouteCollectionForRequest($request);
  if (!count($collection)) {
    throw new ResourceNotFoundException();
  }

  // Route Filters are expected to throw an exception themselves if they
  // end up filtering the list down to 0.
  foreach ($this
    ->getRouteFilters() as $filter) {
    $collection = $filter
      ->filter($collection, $request);
  }
  $attributes = $this->finalMatcher
    ->finalMatch($collection, $request);
  return $attributes;
}