vendor/symfony/security-bundle/Debug/WrappedListener.php line 44

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Bundle\SecurityBundle\Debug;
  11. use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  12. use Symfony\Component\Security\Http\Firewall\ListenerInterface;
  13. use Symfony\Component\VarDumper\Caster\ClassStub;
  14. /**
  15.  * Wraps a security listener for calls record.
  16.  *
  17.  * @author Robin Chalas <robin.chalas@gmail.com>
  18.  */
  19. final class WrappedListener implements ListenerInterface {
  20.     private $response;
  21.     private $listener;
  22.     private $time;
  23.     private $stub;
  24.     private static $hasVarDumper;
  25.     public function __construct(ListenerInterface $listener) {
  26.         $this->listener $listener;
  27.         if (null === self::$hasVarDumper) {
  28.             self::$hasVarDumper class_exists(ClassStub::class);
  29.         }
  30.     }
  31.     /**
  32.      * {@inheritdoc}
  33.      */
  34.     public function handle(GetResponseEvent $event) {
  35.         $startTime microtime(true);
  36.         $this->listener->handle($event);
  37.         $this->time microtime(true) - $startTime;
  38.         $this->response $event->getResponse();
  39.     }
  40.     /**
  41.      * Proxies all method calls to the original listener.
  42.      */
  43.     public function __call($method$arguments) {
  44.         return $this->listener->{$method}(...$arguments);
  45.     }
  46.     public function getWrappedListener(): ListenerInterface {
  47.         return $this->listener;
  48.     }
  49.     public function getInfo(): array {
  50.         if (null === $this->stub) {
  51.             $this->stub self::$hasVarDumper ? new ClassStub(\get_class($this->listener)) : \get_class($this->listener);
  52.         }
  53.         return [
  54.             'response' => $this->response,
  55.             'time' => $this->time,
  56.             'stub' => $this->stub,
  57.         ];
  58.     }
  59. }