vendor/symfony/http-kernel/Controller/TraceableControllerResolver.php line 36

  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\Component\HttpKernel\Controller;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Stopwatch\Stopwatch;
  13. /**
  14.  * @author Fabien Potencier <fabien@symfony.com>
  15.  */
  16. class TraceableControllerResolver implements ControllerResolverInterface
  17. {
  18.     private ControllerResolverInterface $resolver;
  19.     private Stopwatch $stopwatch;
  20.     public function __construct(ControllerResolverInterface $resolverStopwatch $stopwatch)
  21.     {
  22.         $this->resolver $resolver;
  23.         $this->stopwatch $stopwatch;
  24.     }
  25.     public function getController(Request $request): callable|false
  26.     {
  27.         $e $this->stopwatch->start('controller.get_callable');
  28.         try {
  29.             return $this->resolver->getController($request);
  30.         } finally {
  31.             $e->stop();
  32.         }
  33.     }
  34. }