[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/http-kernel/DataCollector/ -> EventDataCollector.php (source)

   1  <?php
   2  
   3  /*
   4   * This file is part of the Symfony package.
   5   *
   6   * (c) Fabien Potencier <fabien@symfony.com>
   7   *
   8   * For the full copyright and license information, please view the LICENSE
   9   * file that was distributed with this source code.
  10   */
  11  
  12  namespace Symfony\Component\HttpKernel\DataCollector;
  13  
  14  use Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcherInterface;
  15  use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  16  use Symfony\Component\HttpFoundation\Request;
  17  use Symfony\Component\HttpFoundation\Response;
  18  
  19  /**
  20   * EventDataCollector.
  21   *
  22   * @author Fabien Potencier <fabien@symfony.com>
  23   */
  24  class EventDataCollector extends DataCollector implements LateDataCollectorInterface
  25  {
  26      protected $dispatcher;
  27  
  28      public function __construct(EventDispatcherInterface $dispatcher = null)
  29      {
  30          if ($dispatcher instanceof TraceableEventDispatcherInterface && !method_exists($dispatcher, 'reset')) {
  31              @trigger_error(sprintf('Implementing "%s" without the "reset()" method is deprecated since Symfony 3.4 and will be unsupported in 4.0 for class "%s".', TraceableEventDispatcherInterface::class, \get_class($dispatcher)), \E_USER_DEPRECATED);
  32          }
  33          $this->dispatcher = $dispatcher;
  34      }
  35  
  36      /**
  37       * {@inheritdoc}
  38       */
  39      public function collect(Request $request, Response $response, \Exception $exception = null)
  40      {
  41          $this->data = [
  42              'called_listeners' => [],
  43              'not_called_listeners' => [],
  44          ];
  45      }
  46  
  47      public function reset()
  48      {
  49          $this->data = [];
  50  
  51          if ($this->dispatcher instanceof TraceableEventDispatcherInterface) {
  52              if (!method_exists($this->dispatcher, 'reset')) {
  53                  return; // @deprecated
  54              }
  55  
  56              $this->dispatcher->reset();
  57          }
  58      }
  59  
  60      public function lateCollect()
  61      {
  62          if ($this->dispatcher instanceof TraceableEventDispatcherInterface) {
  63              $this->setCalledListeners($this->dispatcher->getCalledListeners());
  64              $this->setNotCalledListeners($this->dispatcher->getNotCalledListeners());
  65          }
  66          $this->data = $this->cloneVar($this->data);
  67      }
  68  
  69      /**
  70       * Sets the called listeners.
  71       *
  72       * @param array $listeners An array of called listeners
  73       *
  74       * @see TraceableEventDispatcherInterface
  75       */
  76      public function setCalledListeners(array $listeners)
  77      {
  78          $this->data['called_listeners'] = $listeners;
  79      }
  80  
  81      /**
  82       * Gets the called listeners.
  83       *
  84       * @return array An array of called listeners
  85       *
  86       * @see TraceableEventDispatcherInterface
  87       */
  88      public function getCalledListeners()
  89      {
  90          return $this->data['called_listeners'];
  91      }
  92  
  93      /**
  94       * Sets the not called listeners.
  95       *
  96       * @param array $listeners An array of not called listeners
  97       *
  98       * @see TraceableEventDispatcherInterface
  99       */
 100      public function setNotCalledListeners(array $listeners)
 101      {
 102          $this->data['not_called_listeners'] = $listeners;
 103      }
 104  
 105      /**
 106       * Gets the not called listeners.
 107       *
 108       * @return array An array of not called listeners
 109       *
 110       * @see TraceableEventDispatcherInterface
 111       */
 112      public function getNotCalledListeners()
 113      {
 114          return $this->data['not_called_listeners'];
 115      }
 116  
 117      /**
 118       * {@inheritdoc}
 119       */
 120      public function getName()
 121      {
 122          return 'events';
 123      }
 124  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1