vendor/symfony/twig-bridge/Extension/HttpKernelRuntime.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\Bridge\Twig\Extension;
  11. use Symfony\Component\HttpKernel\Controller\ControllerReference;
  12. use Symfony\Component\HttpKernel\Fragment\FragmentHandler;
  13. use Symfony\Component\HttpKernel\Fragment\FragmentUriGeneratorInterface;
  14. /**
  15.  * Provides integration with the HttpKernel component.
  16.  *
  17.  * @author Fabien Potencier <fabien@symfony.com>
  18.  */
  19. final class HttpKernelRuntime
  20. {
  21.     private FragmentHandler $handler;
  22.     private ?FragmentUriGeneratorInterface $fragmentUriGenerator;
  23.     public function __construct(FragmentHandler $handlerFragmentUriGeneratorInterface $fragmentUriGenerator null)
  24.     {
  25.         $this->handler $handler;
  26.         $this->fragmentUriGenerator $fragmentUriGenerator;
  27.     }
  28.     /**
  29.      * Renders a fragment.
  30.      *
  31.      * @see FragmentHandler::render()
  32.      */
  33.     public function renderFragment(string|ControllerReference $uri, array $options = []): string
  34.     {
  35.         $strategy $options['strategy'] ?? 'inline';
  36.         unset($options['strategy']);
  37.         return $this->handler->render($uri$strategy$options);
  38.     }
  39.     /**
  40.      * Renders a fragment.
  41.      *
  42.      * @see FragmentHandler::render()
  43.      */
  44.     public function renderFragmentStrategy(string $strategystring|ControllerReference $uri, array $options = []): string
  45.     {
  46.         return $this->handler->render($uri$strategy$options);
  47.     }
  48.     public function generateFragmentUri(ControllerReference $controllerbool $absolute falsebool $strict truebool $sign true): string
  49.     {
  50.         if (null === $this->fragmentUriGenerator) {
  51.             throw new \LogicException(sprintf('An instance of "%s" must be provided to use "%s()".'FragmentUriGeneratorInterface::class, __METHOD__));
  52.         }
  53.         return $this->fragmentUriGenerator->generate($controllernull$absolute$strict$sign);
  54.     }
  55. }