Further changes for the Use cases on the live site.
[yaffs-website] / web / core / lib / Drupal / Core / EventSubscriber / ParamConverterSubscriber.php
1 <?php
2
3 namespace Drupal\Core\EventSubscriber;
4
5 use Drupal\Core\ParamConverter\ParamConverterManagerInterface;
6 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
7 use Drupal\Core\Routing\RoutingEvents;
8 use Drupal\Core\Routing\RouteBuildEvent;
9
10 /**
11  * Event subscriber for registering parameter converters with routes.
12  */
13 class ParamConverterSubscriber implements EventSubscriberInterface {
14
15   /**
16    * The parameter converter manager.
17    *
18    * @var \Drupal\Core\ParamConverter\ParamConverterManagerInterface
19    */
20   protected $paramConverterManager;
21
22   /**
23    * Constructs a new ParamConverterSubscriber.
24    *
25    * @param \Drupal\Core\ParamConverter\ParamConverterManagerInterface $param_converter_manager
26    *   The parameter converter manager that will be responsible for upcasting
27    *   request attributes.
28    */
29   public function __construct(ParamConverterManagerInterface $param_converter_manager) {
30     $this->paramConverterManager = $param_converter_manager;
31   }
32
33   /**
34    * Applies parameter converters to route parameters.
35    *
36    * @param \Drupal\Core\Routing\RouteBuildEvent $event
37    *   The event to process.
38    */
39   public function onRoutingRouteAlterSetParameterConverters(RouteBuildEvent $event) {
40     $this->paramConverterManager->setRouteParameterConverters($event->getRouteCollection());
41   }
42
43   /**
44    * {@inheritdoc}
45    */
46   public static function getSubscribedEvents() {
47     // Run after \Drupal\system\EventSubscriber\AdminRouteSubscriber.
48     $events[RoutingEvents::ALTER][] = ['onRoutingRouteAlterSetParameterConverters', -220];
49     return $events;
50   }
51
52 }