[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/symfony/http-kernel/DataCollector/ -> RouterDataCollector.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\HttpFoundation\RedirectResponse;
  15  use Symfony\Component\HttpFoundation\Request;
  16  use Symfony\Component\HttpFoundation\Response;
  17  use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
  18  
  19  /**
  20   * RouterDataCollector.
  21   *
  22   * @author Fabien Potencier <fabien@symfony.com>
  23   */
  24  class RouterDataCollector extends DataCollector
  25  {
  26      /**
  27       * @var \SplObjectStorage
  28       */
  29      protected $controllers;
  30  
  31      public function __construct()
  32      {
  33          $this->reset();
  34      }
  35  
  36      /**
  37       * {@inheritdoc}
  38       */
  39      public function collect(Request $request, Response $response, \Exception $exception = null)
  40      {
  41          if ($response instanceof RedirectResponse) {
  42              $this->data['redirect'] = true;
  43              $this->data['url'] = $response->getTargetUrl();
  44  
  45              if ($this->controllers->contains($request)) {
  46                  $this->data['route'] = $this->guessRoute($request, $this->controllers[$request]);
  47              }
  48          }
  49  
  50          unset($this->controllers[$request]);
  51      }
  52  
  53      public function reset()
  54      {
  55          $this->controllers = new \SplObjectStorage();
  56  
  57          $this->data = [
  58              'redirect' => false,
  59              'url' => null,
  60              'route' => null,
  61          ];
  62      }
  63  
  64      protected function guessRoute(Request $request, $controller)
  65      {
  66          return 'n/a';
  67      }
  68  
  69      /**
  70       * Remembers the controller associated to each request.
  71       */
  72      public function onKernelController(FilterControllerEvent $event)
  73      {
  74          $this->controllers[$event->getRequest()] = $event->getController();
  75      }
  76  
  77      /**
  78       * @return bool Whether this request will result in a redirect
  79       */
  80      public function getRedirect()
  81      {
  82          return $this->data['redirect'];
  83      }
  84  
  85      /**
  86       * @return string|null The target URL
  87       */
  88      public function getTargetUrl()
  89      {
  90          return $this->data['url'];
  91      }
  92  
  93      /**
  94       * @return string|null The target route
  95       */
  96      public function getTargetRoute()
  97      {
  98          return $this->data['route'];
  99      }
 100  
 101      /**
 102       * {@inheritdoc}
 103       */
 104      public function getName()
 105      {
 106          return 'router';
 107      }
 108  }


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