Version 1
[yaffs-website] / web / core / lib / Drupal / Core / EventSubscriber / RouteEnhancerSubscriber.php
1 <?php
2
3 namespace Drupal\Core\EventSubscriber;
4
5 use Drupal\Core\Routing\LazyRouteEnhancer;
6 use Drupal\Core\Routing\RouteBuildEvent;
7 use Drupal\Core\Routing\RoutingEvents;
8 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
9
10 /**
11  * Listens to the new routes before they get saved.
12  */
13 class RouteEnhancerSubscriber implements EventSubscriberInterface {
14
15   /**
16    * @var \Drupal\Core\Routing\LazyRouteEnhancer
17    */
18   protected $routeEnhancer;
19
20   /**
21    * Constructs the RouteEnhancerSubscriber object.
22    *
23    * @param \Drupal\Core\Routing\LazyRouteEnhancer $route_enhancer
24    *   The lazy route enhancer.
25    */
26   public function __construct(LazyRouteEnhancer $route_enhancer) {
27     $this->routeEnhancer = $route_enhancer;
28   }
29
30   /**
31    * Adds the route_enhancer object to the route collection.
32    *
33    * @param \Drupal\Core\Routing\RouteBuildEvent $event
34    *   The route build event.
35    */
36   public function onRouteAlter(RouteBuildEvent $event) {
37     $this->routeEnhancer->setEnhancers($event->getRouteCollection());
38   }
39
40   /**
41    * {@inheritdoc}
42    */
43   public static function getSubscribedEvents() {
44     $events[RoutingEvents::ALTER][] = ['onRouteAlter', -300];
45     return $events;
46   }
47
48 }