protected ModuleRouteSubscriber::alterRoutes(RouteCollection $collection)
Alters existing routes for a specific collection.
Parameters
\Symfony\Component\Routing\RouteCollection $collection: The route collection for adding routes.
Overrides RouteSubscriberBase::alterRoutes
File
- core/lib/Drupal/Core/EventSubscriber/ModuleRouteSubscriber.php, line 34
Class
- ModuleRouteSubscriber
- A route subscriber to remove routes that depend on modules being enabled.
Namespace
Drupal\Core\EventSubscriber
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | protected function alterRoutes(RouteCollection $collection ) { foreach ( $collection as $name => $route ) { if ( $route ->hasRequirement( '_module_dependencies' )) { $modules = $route ->getRequirement( '_module_dependencies' ); $explode_and = $this ->explodeString( $modules , '+' ); if ( count ( $explode_and ) > 1) { foreach ( $explode_and as $module ) { // If any moduleExists() call returns FALSE, remove the route and // move on to the next. if (! $this ->moduleHandler->moduleExists( $module )) { $collection ->remove( $name ); continue 2; } } } else { // OR condition, exploding on ',' character. foreach ( $this ->explodeString( $modules , ',' ) as $module ) { if ( $this ->moduleHandler->moduleExists( $module )) { continue 2; } } // If no modules are found, and we get this far, remove the route. $collection ->remove( $name ); } } } } |
Please login to continue.