| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\HttpKernel\DependencyInjection;use Psr\Container\ContainerInterface;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpKernel\Fragment\FragmentHandler;/** * Lazily loads fragment renderers from the dependency injection container. * * @author Fabien Potencier <fabien@symfony.com> */class LazyLoadingFragmentHandler extends FragmentHandler{    private $container;    /**     * @var array<string, bool>     */    private $initialized = [];    public function __construct(ContainerInterface $container, RequestStack $requestStack, bool $debug = false)    {        $this->container = $container;        parent::__construct($requestStack, [], $debug);    }    /**     * {@inheritdoc}     */    public function render($uri, string $renderer = 'inline', array $options = [])    {        if (!isset($this->initialized[$renderer]) && $this->container->has($renderer)) {            $this->addRenderer($this->container->get($renderer));            $this->initialized[$renderer] = true;        }        return parent::render($uri, $renderer, $options);    }}
 |