8000 fixed a circular reference (closes #6730) · symfony/symfony@65b4112 · GitHub
[go: up one dir, main page]

Skip to content

Commit 65b4112

Browse files
committed
fixed a circular reference (closes #6730)
1 parent 4bdfb92 commit 65b4112

File tree

3 files changed

+53
-3
lines changed

3 files changed

+53
-3
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the Symfony package.
5+
*
6+
* (c) Fabien Potencier <fabien@symfony.com>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace Symfony\Bundle\FrameworkBundle\RenderingStrategy;
13+
14+
use Symfony\Component\DependencyInjection\ContainerInterface;
15+
use Symfony\Component\HttpFoundation\Request;
16+
use Symfony\Component\HttpKernel\UriSigner;
17+
use Symfony\Component\HttpKernel\RenderingStrategy\HIncludeRenderingStrategy;
18+
19+
/**
20+
* Implements the Hinclude rendering strategy.
21+
*
22+
* @author Fabien Potencier <fabien@symfony.com>
23+
*/
24+
class ContainerAwareHIncludeRenderingStrategy extends HIncludeRenderingStrategy
25+
{
26+
private $container;
27+
28+
/**
29+
* {@inheritdoc}
30+
*/
31+
public function __construct(ContainerInterface $container, UriSigner $signer = null, $globalDefaultTemplate = null)
32+
{
33+
$this->container = $container;
34+
35+
parent::__construct(null, $signer, $globalDefaultTemplate);
36+
}
37+
38+
/**
39+
* {@inheritdoc}
40+
*/
41+
public function render($uri, Request $request, array $options = array())
42+
{
43+
if (!$this->templating) {
44+
$this->templating = $this->container->get('templating');
45+
}
46+
47+
return parent::render($uri, $request, $options);
48+
}
49+
}

src/Symfony/Bundle/FrameworkBundle/Resources/config/content_generator.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parameters>
88
<parameter key="http_content_renderer.class">Symfony\Component\HttpKernel\HttpContentRenderer</parameter>
99
<parameter key="http_content_renderer.strategy.default.class">Symfony\Component\HttpKernel\RenderingStrategy\DefaultRenderingStrategy</parameter>
10-
<parameter key="http_content_renderer.strategy.hinclude.class">Symfony\Component\HttpKernel\RenderingStrategy\HIncludeRenderingStrategy</parameter>
10+
<parameter key="http_content_renderer.strategy.hinclude.class">Symfony\Bundle\FrameworkBundle\RenderingStrategy\ContainerAwareHIncludeRenderingStrategy</parameter>
1111
<parameter key="http_content_renderer.strategy.hinclude.global_template"></parameter>
1212
<parameter key="http_content_renderer.proxy_path">/_proxy</parameter>
1313
</parameters>
@@ -27,7 +27,7 @@
2727

2828
<service id="http_content_renderer.strategy.hinclude" class="%http_content_renderer.strategy.hinclude.class%">
2929
<tag name="kernel.content_renderer_strategy" />
30-
<argument type="service" id="templating" on-invalid="null" />
30+
<argument type="service" id="service_container" />
3131
<argument type="service" id="uri_signer" />
3232
<argument>%http_content_renderer.strategy.hinclude.global_template%</argument>
3333
<call method="setProxyPath"><argument>%http_content_renderer.proxy_path%</argument></call>

src/Symfony/Component/HttpKernel/RenderingStrategy/HIncludeRenderingStrategy.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
*/
2525
class HIncludeRenderingStrategy extends ProxyAwareRenderingStrategy
2626
{
27-
private $templating;
27+
protected $templating;
28+
2829
private $globalDefaultTemplate;
2930
private $signer;
3031

0 commit comments

Comments
 (0)
0