1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace Symfony\Component\HttpKernel\DependencyInjection;
- use Symfony\Component\DependencyInjection\ContainerInterface;
- use Symfony\Component\HttpFoundation\RequestStack;
- use Symfony\Component\HttpKernel\Fragment\FragmentHandler;
- class LazyLoadingFragmentHandler extends FragmentHandler
- {
- private $container;
- private $rendererIds = array();
-
- public function __construct(ContainerInterface $container, RequestStack $requestStack, $debug = false)
- {
- $this->container = $container;
- parent::__construct($requestStack, array(), $debug);
- }
-
- public function addRendererService($name, $renderer)
- {
- $this->rendererIds[$name] = $renderer;
- }
-
- public function render($uri, $renderer = 'inline', array $options = array())
- {
- if (isset($this->rendererIds[$renderer])) {
- $this->addRenderer($this->container->get($this->rendererIds[$renderer]));
- unset($this->rendererIds[$renderer]);
- }
- return parent::render($uri, $renderer, $options);
- }
- }
|