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