Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. EntityRouteAlterSubscriber.php

class EntityRouteAlterSubscriber

Registers the 'type' of route parameter names that match an entity type.

@todo Matching on parameter *name* is not ideal, because it breaks encapsulation: parameter names are local to the controller and route, and controllers and routes can't be expected to know what all possible entity types might exist across all modules in order to pick names that don't conflict. Instead, the 'type' should be determined from introspecting what kind of PHP variable (e.g., a type hinted interface) the controller requires: https://www.drupal.org/node/2041907.

Hierarchy

  • class \Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface

Expanded class hierarchy of EntityRouteAlterSubscriber

File

core/lib/Drupal/Core/EventSubscriber/EntityRouteAlterSubscriber.php, line 21

Namespace

Drupal\Core\EventSubscriber
View source
class EntityRouteAlterSubscriber implements EventSubscriberInterface {
    
    /**
     * The entity resolver manager.
     *
     * @var \Drupal\Core\Entity\EntityResolverManager
     */
    protected $resolverManager;
    
    /**
     * Constructs an EntityRouteAlterSubscriber instance.
     *
     * @param \Drupal\Core\Entity\EntityResolverManager $entity_resolver_manager
     *   The entity resolver manager.
     */
    public function __construct(EntityResolverManager $entity_resolver_manager) {
        $this->resolverManager = $entity_resolver_manager;
    }
    
    /**
     * Applies parameter converters to route parameters.
     *
     * @param \Drupal\Core\Routing\RouteBuildEvent $event
     *   The event to process.
     */
    public function onRoutingRouteAlterSetType(RouteBuildEvent $event) {
        foreach ($event->getRouteCollection() as $route) {
            $this->resolverManager
                ->setRouteOptions($route);
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public static function getSubscribedEvents() : array {
        $events[RoutingEvents::ALTER][] = [
            'onRoutingRouteAlterSetType',
            -150,
        ];
        return $events;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
EntityRouteAlterSubscriber::$resolverManager protected property The entity resolver manager.
EntityRouteAlterSubscriber::getSubscribedEvents public static function Returns an array of event names this subscriber wants to listen to. Overrides EventSubscriberInterface::getSubscribedEvents
EntityRouteAlterSubscriber::onRoutingRouteAlterSetType public function Applies parameter converters to route parameters.
EntityRouteAlterSubscriber::__construct public function Constructs an EntityRouteAlterSubscriber instance.

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal