3 namespace Drupal\Core\EventSubscriber;
5 use Drupal\Core\ParamConverter\ParamConverterManagerInterface;
6 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
7 use Drupal\Core\Routing\RoutingEvents;
8 use Drupal\Core\Routing\RouteBuildEvent;
11 * Event subscriber for registering parameter converters with routes.
13 class ParamConverterSubscriber implements EventSubscriberInterface {
16 * The parameter converter manager.
18 * @var \Drupal\Core\ParamConverter\ParamConverterManagerInterface
20 protected $paramConverterManager;
23 * Constructs a new ParamConverterSubscriber.
25 * @param \Drupal\Core\ParamConverter\ParamConverterManagerInterface $param_converter_manager
26 * The parameter converter manager that will be responsible for upcasting
29 public function __construct(ParamConverterManagerInterface $param_converter_manager) {
30 $this->paramConverterManager = $param_converter_manager;
34 * Applies parameter converters to route parameters.
36 * @param \Drupal\Core\Routing\RouteBuildEvent $event
37 * The event to process.
39 public function onRoutingRouteAlterSetParameterConverters(RouteBuildEvent $event) {
40 $this->paramConverterManager->setRouteParameterConverters($event->getRouteCollection());
46 public static function getSubscribedEvents() {
47 // Run after \Drupal\system\EventSubscriber\AdminRouteSubscriber.
48 $events[RoutingEvents::ALTER][] = ['onRoutingRouteAlterSetParameterConverters', -220];