class FilterControllerEvent

Allows filtering of a controller callable

You can call getController() to retrieve the current controller. With setController() you can set a new controller that is used in the processing of the request.

Controllers should be callables.

@author Bernhard Schussek <bschussek@gmail.com>

@api

Hierarchy

Expanded class hierarchy of FilterControllerEvent

4 files declare their use of FilterControllerEvent
HttpKernel.php in drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpKernel.php
LegacyControllerSubscriber.php in drupal/core/lib/Drupal/Core/EventSubscriber/LegacyControllerSubscriber.php
Definition of Drupal\Core\EventSubscriber\LegacyControllerSubscriber.
RequestDataCollector.php in drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php
RouterDataCollector.php in drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/DataCollector/RouterDataCollector.php

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php, line 30

Namespace

Symfony\Component\HttpKernel\Event
View source
class FilterControllerEvent extends KernelEvent {

  /**
   * The current controller
   * @var callable
   */
  private $controller;
  public function __construct(HttpKernelInterface $kernel, $controller, Request $request, $requestType) {
    parent::__construct($kernel, $request, $requestType);
    $this
      ->setController($controller);
  }

  /**
   * Returns the current controller
   *
   * @return callable
   *
   * @api
   */
  public function getController() {
    return $this->controller;
  }

  /**
   * Sets a new controller
   *
   * @param callable $controller
   *
   * @api
   */
  public function setController($controller) {

    // controller must be a callable
    if (!is_callable($controller)) {
      throw new \LogicException(sprintf('The controller must be a callable (%s given).', $this
        ->varToString($controller)));
    }
    $this->controller = $controller;
  }
  private function varToString($var) {
    if (is_object($var)) {
      return sprintf('Object(%s)', get_class($var));
    }
    if (is_array($var)) {
      $a = array();
      foreach ($var as $k => $v) {
        $a[] = sprintf('%s => %s', $k, $this
          ->varToString($v));
      }
      return sprintf("Array(%s)", implode(', ', $a));
    }
    if (is_resource($var)) {
      return sprintf('Resource(%s)', get_resource_type($var));
    }
    if (null === $var) {
      return 'null';
    }
    if (false === $var) {
      return 'false';
    }
    if (true === $var) {
      return 'true';
    }
    return (string) $var;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Event::$dispatcher private property
Event::$name private property
Event::$propagationStopped private property
Event::getDispatcher public function Returns the EventDispatcher that dispatches this Event
Event::getName public function Gets the event's name.
Event::isPropagationStopped public function Returns whether further event listeners should be triggered.
Event::setDispatcher public function Stores the EventDispatcher that dispatches this Event
Event::setName public function Sets the event's name property.
Event::stopPropagation public function Stops the propagation of the event to further event listeners.
FilterControllerEvent::$controller private property The current controller
FilterControllerEvent::getController public function Returns the current controller
FilterControllerEvent::setController public function Sets a new controller
FilterControllerEvent::varToString private function
FilterControllerEvent::__construct public function Overrides KernelEvent::__construct
KernelEvent::$kernel private property The kernel in which this event was thrown
KernelEvent::$request private property The request the kernel is currently processing
KernelEvent::$requestType private property The request type the kernel is currently processing. One of HttpKernelInterface::MASTER_REQUEST and HttpKernelInterface::SUB_REQUEST
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