/**
* Provides routes on route rebuild time.
*
* @param \Drupal\Core\Routing\RouteBuildEvent $event
* The route build event.
*/
public function onDynamicRouteEvent(RouteBuildEvent
$event) { $route_collection =
$event->
getRouteCollection();
foreach ($this->entityTypeManager->
getDefinitions() as $entity_type) { if ($entity_type->
hasRouteProviders()) { foreach ($this->entityTypeManager->
getRouteProviders($entity_type->
id()) as $route_provider) { // Allow to both return an array of routes or a route collection,
// like route_callbacks in the routing.yml file.
$routes =
$route_provider->
getRoutes($entity_type);
if ($routes instanceof RouteCollection
) { $routes =
$routes->
all();
} foreach ($routes as $route_name =>
$route) { // Don't override existing routes.
if (!
$route_collection->
get($route_name)) { $route_collection->
add($route_name,
$route);
}