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.
Request $request The request to match:
array An array of parameters
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
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;
}