Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. RouteProvider.php

function RouteProvider::preLoadRoutes

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 220

Class

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

Namespace

Drupal\Core\Routing

Code

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) {
                $routes = [];
            }
        }
        $this->serializedRoutes += $routes;
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal