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> <parameters>
<parameter key="esi.class">Symfony\Component\HttpKernel\HttpCache\Esi</parameter> <parameter key="esi.class">Symfony\Component\HttpKernel\HttpCache\Esi</parameter>
<parameter key="esi_listener.class">Symfony\Component\HttpKernel\EventListener\EsiListener</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> </parameters>
<services> <services>
@ -17,12 +16,5 @@
<tag name="kernel.event_subscriber" /> <tag name="kernel.event_subscriber" />
<argument type="service" id="esi" on-invalid="ignore" /> <argument type="service" id="esi" on-invalid="ignore" />
</service> </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> </services>
</container> </container>

View File

@ -9,6 +9,7 @@
<parameter key="fragment.renderer.inline.class">Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer</parameter> <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.class">Symfony\Bundle\FrameworkBundle\Fragment\ContainerAwareHIncludeFragmentRenderer</parameter>
<parameter key="fragment.renderer.hinclude.global_template"></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> <parameter key="fragment.path">/_fragment</parameter>
</parameters> </parameters>
@ -33,5 +34,12 @@
<argument>%fragment.renderer.hinclude.global_template%</argument> <argument>%fragment.renderer.hinclude.global_template%</argument>
<call method="setFragmentPath"><argument>%fragment.path%</argument></call> <call method="setFragmentPath"><argument>%fragment.path%</argument></call>
</service> </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> </services>
</container> </container>

View File

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