RouteProvider::getRoutesByNames

public RouteProvider::getRoutesByNames($names)

Find many routes by their names using the provided list of names.

Note that this method may not throw an exception if some of the routes are not found or are not actually Route instances. It will just return the list of those Route instances it found.

This method exists in order to allow performance optimizations. The simple implementation could be to just repeatedly call $this->getRouteByName() while catching and ignoring eventual exceptions.

If $names is null, this method SHOULD return a collection of all routes known to this provider. If there are many routes to be expected, usage of a lazy loading collection is recommended. A provider MAY only return a subset of routes to e.g. support paging or other concepts, but be aware that the DynamicRouter will only call this method once per DynamicRouter::getRouteCollection() call.

Parameters

array|null $names The list of names to retrieve, In case of null,: the provider will determine what routes to return.

Return value

Route[] Iterable list with the keys being the names from the $names array.

Overrides RouteProviderInterface::getRoutesByNames

File

core/lib/Drupal/Core/Routing/RouteProvider.php, line 227

Class

RouteProvider
A Route Provider front-end for all Drupal-stored routes.

Namespace

Drupal\Core\Routing

Code

public function getRoutesByNames($names) {
  $this->preLoadRoutes($names);

  foreach ($names as $name) {
    // The specified route name might not exist or might be serialized.
    if (!isset($this->routes[$name]) && isset($this->serializedRoutes[$name])) {
      $this->routes[$name] = unserialize($this->serializedRoutes[$name]);
      unset($this->serializedRoutes[$name]);
    }
  }

  return array_intersect_key($this->routes, array_flip($names));
}
doc_Drupal
2016-10-29 09:39:17
Comments
Leave a Comment

Please login to continue.