function RouteProvider::preLoadRoutes
Pre-load routes by their names using the provided list of names.
This method exists in order to allow performance optimizations. It allows pre-loading serialized routes that may latter be retrieved using ::getRoutesByName()
Parameters
string[] $names: Array of route names to load.
Overrides PreloadableRouteProviderInterface::preLoadRoutes
1 call to RouteProvider::preLoadRoutes()
- RouteProvider::getRoutesByNames in core/
lib/ Drupal/ Core/ Routing/ RouteProvider.php  - Find many routes by their names using the provided list of names.
 
File
- 
              core/
lib/ Drupal/ Core/ Routing/ RouteProvider.php, line 217  
Class
- RouteProvider
 - A Route Provider front-end for all Drupal-stored routes.
 
Namespace
Drupal\Core\RoutingCode
public function preLoadRoutes($names) {
  if (empty($names)) {
    throw new \InvalidArgumentException('You must specify the route names to load');
  }
  $routes_to_load = array_diff($names, array_keys($this->routes), array_keys($this->serializedRoutes));
  if ($routes_to_load) {
    $cid = static::ROUTE_LOAD_CID_PREFIX . hash('sha512', serialize($routes_to_load));
    if ($cache = $this->cache
      ->get($cid)) {
      $routes = $cache->data;
    }
    else {
      try {
        $result = $this->connection
          ->query('SELECT [name], [route] FROM {' . $this->connection
          ->escapeTable($this->tableName) . '} WHERE [name] IN ( :names[] )', [
          ':names[]' => $routes_to_load,
        ]);
        $routes = $result->fetchAllKeyed();
        $this->cache
          ->set($cid, $routes, Cache::PERMANENT, [
          'routes',
        ]);
      } catch (\Exception $e) {
        $routes = [];
      }
    }
    $this->serializedRoutes += $routes;
  }
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.