You are here

protected function RouteMatch::getParameterNames in Drupal 10

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

Returns the names of all parameters for the currently matched route.

Return value

array Route parameter names as both the keys and values.

File

core/lib/Drupal/Core/Routing/RouteMatch.php, line 143

Class

RouteMatch
Default object representing the results of routing.

Namespace

Drupal\Core\Routing

Code

protected function getParameterNames() {
  $names = [];
  if ($route = $this
    ->getRouteObject()) {

    // Variables defined in path and host patterns are route parameters.
    $variables = $route
      ->compile()
      ->getVariables();
    $names = array_combine($variables, $variables);

    // Route defaults that do not start with a leading "_" are also
    // parameters, even if they are not included in path or host patterns.
    foreach ($route
      ->getDefaults() as $name => $value) {
      if (!isset($names[$name]) && substr($name, 0, 1) !== '_') {
        $names[$name] = $name;
      }
    }
  }
  return $names;
}