vendor/symfony/http-kernel/Controller/TraceableArgumentResolver.php line 39

  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 TraceableArgumentResolver implements ArgumentResolverInterface
  17. {
  18.     private ArgumentResolverInterface $resolver;
  19.     private Stopwatch $stopwatch;
  20.     public function __construct(ArgumentResolverInterface $resolverStopwatch $stopwatch)
  21.     {
  22.         $this->resolver $resolver;
  23.         $this->stopwatch $stopwatch;
  24.     }
  25.     /**
  26.      * @param \ReflectionFunctionAbstract|null $reflector
  27.      */
  28.     public function getArguments(Request $request, callable $controller/* , \ReflectionFunctionAbstract $reflector = null */): array
  29.     {
  30.         $reflector \func_num_args() ? func_get_arg(2) : null;
  31.         $e $this->stopwatch->start('controller.get_arguments');
  32.         $ret $this->resolver->getArguments($request$controller$reflector);
  33.         $e->stop();
  34.         return $ret;
  35.     }
  36. }