RouteProvider
class RouteProvider implements CacheableRouteProviderInterface, PreloadableRouteProviderInterface, EventSubscriberInterface (View source)
A Route Provider front-end for all Drupal-stored routes.
Constants
| ROUTE_LOAD_CID_PREFIX |
Cache ID prefix used to load routes. |
Properties
| protected Connection | $connection | The database connection from which to read route information. |
|
| protected string | $tableName | The name of the SQL table from which to read the routes. |
|
| protected StateInterface | $state | The state. |
|
| protected Route[] | $routes | A cache of already-loaded routes, keyed by route name. |
|
| protected string[] | $serializedRoutes | A cache of already-loaded serialized routes, keyed by route name. |
|
| protected CurrentPathStack | $currentPath | The current path. |
|
| protected CacheBackendInterface | $cache | The cache backend. |
|
| protected CacheTagsInvalidatorInterface | $cacheTagInvalidator | The cache tag invalidator. |
|
| protected InboundPathProcessorInterface | $pathProcessor | A path processor manager for resolving the system path. |
|
| protected LanguageManagerInterface | $languageManager | The language manager. |
|
| protected string[] | $extraCacheKeyParts | An array of cache key parts to be used for the route match cache. |
Methods
Constructs a new PathMatcher.
Finds routes that may potentially match the request.
Find the route using the provided route name.
Pre-load routes by their names using the provided list of names.
Find many routes by their names using the provided list of names.
Returns an array of path pattern outlines that could match the path parts.
Get all routes which match a certain pattern.
Get all routes which match a certain pattern.
Comparison function for usort on routes.
Returns all the routes on the system.
Resets the route provider object.
{@inheritdoc}
Adds a cache key part to be used in the cache ID of the route collection.
Returns the cache ID for the route collection cache.
Returns the language identifier for the route collection cache.
Details
__construct(Connection $connection, StateInterface $state, CurrentPathStack $current_path, CacheBackendInterface $cache_backend, InboundPathProcessorInterface $path_processor, CacheTagsInvalidatorInterface $cache_tag_invalidator, string $table = 'router', LanguageManagerInterface $language_manager = NULL)
Constructs a new PathMatcher.
RouteCollection
getRouteCollectionForRequest(Request $request)
Finds routes that may potentially match the request.
This may return a mixed list of class instances, but all routes returned must extend the core symfony route. The classes may also implement RouteObjectInterface to link to a content document.
This method may not throw an exception based on implementation specific restrictions on the url. That case is considered a not found - returning an empty array. Exceptions are only used to abort the whole request in case something is seriously broken, like the storage backend being down.
Note that implementations may not implement an optimal matching algorithm, simply a reasonable first pass. That allows for potentially very large route sets to be filtered down to likely candidates, which may then be filtered in memory more completely.
Route
getRouteByName(string $name)
Find the route using the provided route name.
preLoadRoutes(string[] $names)
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()
Route[]
getRoutesByNames(array|null $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.
protected array
getCandidateOutlines(array $parts)
Returns an array of path pattern outlines that could match the path parts.
RouteCollection
getRoutesByPattern(string $pattern)
Get all routes which match a certain pattern.
protected RouteCollection
getRoutesByPath(string $path)
Get all routes which match a certain pattern.
protected
routeProviderRouteCompare(array $a, array $b)
Comparison function for usort on routes.
Route[]
getAllRoutes()
Returns all the routes on the system.
Usage of this method is discouraged for performance reasons. If possible, use RouteProviderInterface::getRoutesByNames() or RouteProviderInterface::getRoutesByPattern() instead.
reset()
Resets the route provider object.
static
getSubscribedEvents()
{@inheritdoc}
Route[]
getRoutesPaged(int $offset, int $length = NULL)
deprecated
deprecated
Returns a chunk of routes.
Should only be used in conjunction with an iterator.
int
getRoutesCount()
deprecated
deprecated
Gets the total count of routes provided by the router.
addExtraCacheKeyPart(string $cache_key_provider, string $cache_key_part)
Adds a cache key part to be used in the cache ID of the route collection.
protected string
getRouteCollectionCacheId(Request $request)
Returns the cache ID for the route collection cache.
protected string
getCurrentLanguageCacheIdPart()
Returns the language identifier for the route collection cache.