You are here

protected function CurrentRouteMatch::getRouteMatch in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Routing/CurrentRouteMatch.php \Drupal\Core\Routing\CurrentRouteMatch::getRouteMatch()
  2. 9 core/lib/Drupal/Core/Routing/CurrentRouteMatch.php \Drupal\Core\Routing\CurrentRouteMatch::getRouteMatch()

Returns the route match for a passed in request.

Parameters

\Symfony\Component\HttpFoundation\Request $request: A request object.

Return value

\Drupal\Core\Routing\RouteMatchInterface A route match object created from the request.

File

core/lib/Drupal/Core/Routing/CurrentRouteMatch.php, line 99

Class

CurrentRouteMatch
Default object for current_route_match service.

Namespace

Drupal\Core\Routing

Code

protected function getRouteMatch(Request $request) {
  if (isset($this->routeMatches[$request])) {
    $route_match = $this->routeMatches[$request];
  }
  else {
    $route_match = RouteMatch::createFromRequest($request);

    // Since getRouteMatch() might be invoked both before and after routing
    // is completed, only statically cache the route match after there's a
    // matched route.
    if ($route_match
      ->getRouteObject()) {
      $this->routeMatches[$request] = $route_match;
    }
  }
  return $route_match;
}