FilterControllerEvent.php

Namespace

Symfony\Component\HttpKernel\Event

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Event/FilterControllerEvent.php
View source
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */
namespace Symfony\Component\HttpKernel\Event;

use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpFoundation\Request;

/**
 * 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
 */
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;
  }

}

Classes

Namesort descending Description
FilterControllerEvent Allows filtering of a controller callable