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

Breadcrumb

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

class ControllerArgumentsEvent

Allows filtering of controller arguments.

You can call getController() to retrieve the controller and getArguments to retrieve the current arguments. With setArguments() you can replace arguments that are used to call the controller.

Arguments set in the event must be compatible with the signature of the controller.

@author Christophe Coevoet <stof@notk.org>

Hierarchy

  • class \Symfony\Contracts\EventDispatcher\Event implements \Psr\EventDispatcher\StoppableEventInterface
    • class \Symfony\Component\HttpKernel\Event\KernelEvent extends \Symfony\Contracts\EventDispatcher\Event
      • class \Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent extends \Symfony\Component\HttpKernel\Event\KernelEvent

Expanded class hierarchy of ControllerArgumentsEvent

5 files declare their use of ControllerArgumentsEvent
CacheAttributeListener.php in vendor/symfony/http-kernel/EventListener/CacheAttributeListener.php
ErrorListener.php in vendor/symfony/http-kernel/EventListener/ErrorListener.php
HttpKernel.php in vendor/symfony/http-kernel/HttpKernel.php
KernelEvents.php in vendor/symfony/http-kernel/KernelEvents.php
RequestPayloadValueResolver.php in vendor/symfony/http-kernel/Controller/ArgumentResolver/RequestPayloadValueResolver.php

File

vendor/symfony/http-kernel/Event/ControllerArgumentsEvent.php, line 29

Namespace

Symfony\Component\HttpKernel\Event
View source
final class ControllerArgumentsEvent extends KernelEvent {
    private ControllerEvent $controllerEvent;
    private array $namedArguments;
    public function __construct(HttpKernelInterface $kernel, callable|ControllerEvent $controller, array $arguments, Request $request, ?int $requestType) {
        parent::__construct($kernel, $request, $requestType);
        if (!$controller instanceof ControllerEvent) {
            $controller = new ControllerEvent($kernel, $controller, $request, $requestType);
        }
        $this->controllerEvent = $controller;
    }
    public function getController() : callable {
        return $this->controllerEvent
            ->getController();
    }
    
    /**
     * @param array<class-string, list<object>>|null $attributes
     */
    public function setController(callable $controller, ?array $attributes = null) : void {
        $this->controllerEvent
            ->setController($controller, $attributes);
        unset($this->namedArguments);
    }
    public function getArguments() : array {
        return $this->arguments;
    }
    public function setArguments(array $arguments) : void {
        $this->arguments = $arguments;
        unset($this->namedArguments);
    }
    public function getNamedArguments() : array {
        if (isset($this->namedArguments)) {
            return $this->namedArguments;
        }
        $namedArguments = [];
        $arguments = $this->arguments;
        foreach ($this->controllerEvent
            ->getControllerReflector()
            ->getParameters() as $i => $param) {
            if ($param->isVariadic()) {
                $namedArguments[$param->name] = \array_slice($arguments, $i);
                break;
            }
            if (\array_key_exists($i, $arguments)) {
                $namedArguments[$param->name] = $arguments[$i];
            }
            elseif ($param->isDefaultvalueAvailable()) {
                $namedArguments[$param->name] = $param->getDefaultValue();
            }
        }
        return $this->namedArguments = $namedArguments;
    }
    
    /**
     * @template T of class-string|null
     *
     * @param T $className
     *
     * @return array<class-string, list<object>>|list<object>
     *
     * @psalm-return (T is null ? array<class-string, list<object>> : list<object>)
     */
    public function getAttributes(?string $className = null) : array {
        return $this->controllerEvent
            ->getAttributes($className);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
ControllerArgumentsEvent::$controllerEvent private property
ControllerArgumentsEvent::$namedArguments private property
ControllerArgumentsEvent::getArguments public function
ControllerArgumentsEvent::getAttributes public function @template T of class-string|null
ControllerArgumentsEvent::getController public function
ControllerArgumentsEvent::getNamedArguments public function
ControllerArgumentsEvent::setArguments public function
ControllerArgumentsEvent::setController public function
ControllerArgumentsEvent::__construct public function Overrides KernelEvent::__construct
Event::$propagationStopped private property
Event::isPropagationStopped public function Is propagation stopped? Overrides StoppableEventInterface::isPropagationStopped
Event::stopPropagation public function Stops the propagation of the event to further event listeners. 1
KernelEvent::getKernel public function Returns the kernel in which this event was thrown.
KernelEvent::getRequest public function Returns the request the kernel is currently processing.
KernelEvent::getRequestType public function Returns the request type the kernel is currently processing.
KernelEvent::isMainRequest public function Checks if this is the main request.

API Navigation

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