changed the ESI fragment renderer to be always registered

This commit is contained in:
Fabien Potencier 2013-08-13 11:17:13 +02:00
parent 43e066f7ab
commit 09f727b1f1
3 changed files with 10 additions and 10 deletions

View File

@ -7,7 +7,6 @@
<parameters>
<parameter key="esi.class">Symfony\Component\HttpKernel\HttpCache\Esi</parameter>
<parameter key="esi_listener.class">Symfony\Component\HttpKernel\EventListener\EsiListener</parameter>
<parameter key="fragment.renderer.esi.class">Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer</parameter>
</parameters>
<services>
@ -17,12 +16,5 @@
<tag name="kernel.event_subscriber" />
<argument type="service" id="esi" on-invalid="ignore" />
</service>
<service id="fragment.renderer.esi" class="%fragment.renderer.esi.class%">
<tag name="kernel.fragment_renderer" />
<argument type="service" id="esi" />
<argument type="service" id="fragment.renderer.inline" />
<call method="setFragmentPath"><argument>%fragment.path%</argument></call>
</service>
</services>
</container>

View File

@ -9,6 +9,7 @@
<parameter key="fragment.renderer.inline.class">Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer</parameter>
<parameter key="fragment.renderer.hinclude.class">Symfony\Bundle\FrameworkBundle\Fragment\ContainerAwareHIncludeFragmentRenderer</parameter>
<parameter key="fragment.renderer.hinclude.global_template"></parameter>
<parameter key="fragment.renderer.esi.class">Symfony\Component\HttpKernel\Fragment\EsiFragmentRenderer</parameter>
<parameter key="fragment.path">/_fragment</parameter>
</parameters>
@ -33,5 +34,12 @@
<argument>%fragment.renderer.hinclude.global_template%</argument>
<call method="setFragmentPath"><argument>%fragment.path%</argument></call>
</service>
<service id="fragment.renderer.esi" class="%fragment.renderer.esi.class%">
<tag name="kernel.fragment_renderer" />
<argument type="service" id="esi" on-invalid="null" />
<argument type="service" id="fragment.renderer.inline" />
<call method="setFragmentPath"><argument>%fragment.path%</argument></call>
</service>
</services>
</container>

View File

@ -35,7 +35,7 @@ class EsiFragmentRenderer extends RoutableFragmentRenderer
* @param Esi $esi An Esi instance
* @param InlineFragmentRenderer $inlineStrategy The inline strategy to use when ESI is not supported
*/
public function __construct(Esi $esi, InlineFragmentRenderer $inlineStrategy)
public function __construct(Esi $esi = null, InlineFragmentRenderer $inlineStrategy)
{
$this->esi = $esi;
$this->inlineStrategy = $inlineStrategy;
@ -56,7 +56,7 @@ class EsiFragmentRenderer extends RoutableFragmentRenderer
*/
public function render($uri, Request $request, array $options = array())
{
if (!$this->esi->hasSurrogateEsiCapability($request)) {
if (!$this->esi || !$this->esi->hasSurrogateEsiCapability($request)) {
return $this->inlineStrategy->render($uri, $request, $options);
}