class CurrentRouteMatch
Default object for current_route_match service.
Hierarchy
- class \Drupal\Core\Routing\CurrentRouteMatch implements \Drupal\Core\Routing\ResettableStackedRouteMatchInterface
 
Expanded class hierarchy of CurrentRouteMatch
3 files declare their use of CurrentRouteMatch
- ContentPreprocessTest.php in core/
modules/ content_moderation/ tests/ src/ Unit/ ContentPreprocessTest.php  - CurrentRouteMatchTest.php in core/
tests/ Drupal/ Tests/ Core/ Routing/ CurrentRouteMatchTest.php  - MenuActiveTrailTest.php in core/
tests/ Drupal/ Tests/ Core/ Menu/ MenuActiveTrailTest.php  
1 string reference to 'CurrentRouteMatch'
- core.services.yml in core/
core.services.yml  - core/core.services.yml
 
1 service uses CurrentRouteMatch
File
- 
              core/
lib/ Drupal/ Core/ Routing/ CurrentRouteMatch.php, line 11  
Namespace
Drupal\Core\RoutingView source
class CurrentRouteMatch implements ResettableStackedRouteMatchInterface {
  
  /**
   * The related request stack.
   *
   * @var \Symfony\Component\HttpFoundation\RequestStack
   */
  protected $requestStack;
  
  /**
   * Internal cache of RouteMatch objects.
   *
   * @var \SplObjectStorage
   */
  protected $routeMatches;
  
  /**
   * Constructs a CurrentRouteMatch object.
   *
   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
   *   The request stack.
   */
  public function __construct(RequestStack $request_stack) {
    $this->requestStack = $request_stack;
    $this->routeMatches = new \SplObjectStorage();
  }
  
  /**
   * {@inheritdoc}
   */
  public function getRouteName() {
    return $this->getCurrentRouteMatch()
      ->getRouteName();
  }
  
  /**
   * {@inheritdoc}
   */
  public function getRouteObject() {
    return $this->getCurrentRouteMatch()
      ->getRouteObject();
  }
  
  /**
   * {@inheritdoc}
   */
  public function getParameter($parameter_name) {
    return $this->getCurrentRouteMatch()
      ->getParameter($parameter_name);
  }
  
  /**
   * {@inheritdoc}
   */
  public function getParameters() {
    return $this->getCurrentRouteMatch()
      ->getParameters();
  }
  
  /**
   * {@inheritdoc}
   */
  public function getRawParameter($parameter_name) {
    return $this->getCurrentRouteMatch()
      ->getRawParameter($parameter_name);
  }
  
  /**
   * {@inheritdoc}
   */
  public function getRawParameters() {
    return $this->getCurrentRouteMatch()
      ->getRawParameters();
  }
  
  /**
   * Returns the route match for the current request.
   *
   * @return \Drupal\Core\Routing\RouteMatchInterface
   *   The current route match object.
   */
  public function getCurrentRouteMatch() {
    return $this->getRouteMatch($this->requestStack
      ->getCurrentRequest());
  }
  
  /**
   * Returns the route match for a passed in request.
   *
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   A request object.
   *
   * @return \Drupal\Core\Routing\RouteMatchInterface
   *   A route match object created from the request.
   */
  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;
  }
  
  /**
   * {@inheritdoc}
   */
  public function resetRouteMatch() {
    $this->routeMatches = new \SplObjectStorage();
  }
  
  /**
   * {@inheritdoc}
   */
  public function getMasterRouteMatch() {
    return $this->getRouteMatch($this->requestStack
      ->getMainRequest());
  }
  
  /**
   * {@inheritdoc}
   */
  public function getParentRouteMatch() {
    return $this->getRouteMatch($this->requestStack
      ->getParentRequest());
  }
  
  /**
   * {@inheritdoc}
   */
  public function getRouteMatchFromRequest(Request $request) {
    return $this->getRouteMatch($request);
  }
}
Members
| Title Sort descending | Modifiers | Object type | Summary | Overriden Title | 
|---|---|---|---|---|
| CurrentRouteMatch::$requestStack | protected | property | The related request stack. | |
| CurrentRouteMatch::$routeMatches | protected | property | Internal cache of RouteMatch objects. | |
| CurrentRouteMatch::getCurrentRouteMatch | public | function | Returns the route match for the current request. | Overrides StackedRouteMatchInterface::getCurrentRouteMatch | 
| CurrentRouteMatch::getMasterRouteMatch | public | function | Gets the master route match.. | Overrides StackedRouteMatchInterface::getMasterRouteMatch | 
| CurrentRouteMatch::getParameter | public | function | Returns the processed value of a named route parameter. | Overrides RouteMatchInterface::getParameter | 
| CurrentRouteMatch::getParameters | public | function | Returns the bag of all processed route parameters. | Overrides RouteMatchInterface::getParameters | 
| CurrentRouteMatch::getParentRouteMatch | public | function | Returns the parent route match of the current. | Overrides StackedRouteMatchInterface::getParentRouteMatch | 
| CurrentRouteMatch::getRawParameter | public | function | Returns the raw value of a named route parameter. | Overrides RouteMatchInterface::getRawParameter | 
| CurrentRouteMatch::getRawParameters | public | function | Returns the bag of all raw route parameters. | Overrides RouteMatchInterface::getRawParameters | 
| CurrentRouteMatch::getRouteMatch | protected | function | Returns the route match for a passed in request. | |
| CurrentRouteMatch::getRouteMatchFromRequest | public | function | Returns a route match from a given request, if possible. | Overrides StackedRouteMatchInterface::getRouteMatchFromRequest | 
| CurrentRouteMatch::getRouteName | public | function | Returns the route name. | Overrides RouteMatchInterface::getRouteName | 
| CurrentRouteMatch::getRouteObject | public | function | Returns the route object. | Overrides RouteMatchInterface::getRouteObject | 
| CurrentRouteMatch::resetRouteMatch | public | function | Resets the route match static cache. | Overrides ResettableStackedRouteMatchInterface::resetRouteMatch | 
| CurrentRouteMatch::__construct | public | function | Constructs a CurrentRouteMatch object. | 
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.