Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Routing/RouteSubscriberBase.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Routing/RouteSubscriberBase.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,40 @@ +<?php + +namespace Drupal\Core\Routing; + +use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\Routing\RouteCollection; + +/** + * Provides a base implementation for RouteSubscriber. + */ +abstract class RouteSubscriberBase implements EventSubscriberInterface { + + /** + * Alters existing routes for a specific collection. + * + * @param \Symfony\Component\Routing\RouteCollection $collection + * The route collection for adding routes. + */ + abstract protected function alterRoutes(RouteCollection $collection); + + /** + * {@inheritdoc} + */ + public static function getSubscribedEvents() { + $events[RoutingEvents::ALTER] = 'onAlterRoutes'; + return $events; + } + + /** + * Delegates the route altering to self::alterRoutes(). + * + * @param \Drupal\Core\Routing\RouteBuildEvent $event + * The route build event. + */ + public function onAlterRoutes(RouteBuildEvent $event) { + $collection = $event->getRouteCollection(); + $this->alterRoutes($collection); + } + +}