Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 98be08b

Browse filesBrowse files
committed
feature #23272 [FrameworkBundle] disable unusable fragment renderers (xabbuh)
This PR was merged into the 3.4 branch. Discussion ---------- [FrameworkBundle] disable unusable fragment renderers | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #21733 | License | MIT | Doc PR | Commits ------- 2b3d7f0 disable unusable fragment renderers
2 parents 7787343 + 2b3d7f0 commit 98be08b
Copy full SHA for 98be08b

File tree

Expand file treeCollapse file tree

12 files changed

+107
-4
lines changed
Filter options
Expand file treeCollapse file tree

12 files changed

+107
-4
lines changed

‎src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+6Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,8 @@ private function registerFormConfiguration($config, ContainerBuilder $container,
392392
private function registerEsiConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
393393
{
394394
if (!$this->isConfigEnabled($container, $config)) {
395+
$container->removeDefinition('fragment.renderer.esi');
396+
395397
return;
396398
}
397399

@@ -408,6 +410,8 @@ private function registerEsiConfiguration(array $config, ContainerBuilder $conta
408410
private function registerSsiConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
409411
{
410412
if (!$this->isConfigEnabled($container, $config)) {
413+
$container->removeDefinition('fragment.renderer.ssi');
414+
411415
return;
412416
}
413417

@@ -424,6 +428,8 @@ private function registerSsiConfiguration(array $config, ContainerBuilder $conta
424428
private function registerFragmentsConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
425429
{
426430
if (!$this->isConfigEnabled($container, $config)) {
431+
$container->removeDefinition('fragment.renderer.hinclude');
432+
427433
return;
428434
}
429435

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', array(
4+
'fragments' => array(
5+
'enabled' => false,
6+
),
7+
'esi' => array(
8+
'enabled' => true,
9+
),
10+
'ssi' => array(
11+
'enabled' => true,
12+
),
13+
));
+7Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', array(
4+
'esi' => array(
5+
'enabled' => false,
6+
),
7+
));
+7Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', array(
4+
'ssi' => array(
5+
'enabled' => false,
6+
),
7+
));
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config>
9+
<framework:fragments enabled="false" />
10+
<framework:esi enabled="true" />
11+
<framework:ssi enabled="true" />
12+
</framework:config>
13+
</container>
+11Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config>
9+
<framework:esi enabled="false" />
10+
</framework:config>
11+
</container>
+11Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config>
9+
<framework:ssi enabled="false" />
10+
</framework:config>
11+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
framework:
2+
fragments:
3+
enabled: false
4+
esi:
5+
enabled: true
6+
ssi:
7+
enabled: true
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
framework:
2+
esi:
3+
enabled: false
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
framework:
2+
ssi:
3+
enabled: false

‎src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
+25Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,38 @@ public function testEsi()
132132
$container = $this->createContainerFromFile('full');
133133

134134
$this->assertTrue($container->hasDefinition('esi'), '->registerEsiConfiguration() loads esi.xml');
135+
$this->assertTrue($container->hasDefinition('fragment.renderer.esi'), 'The ESI fragment renderer is registered');
136+
}
137+
138+
public function testEsiDisabled()
139+
{
140+
$container = $this->createContainerFromFile('esi_disabled');
141+
142+
$this->assertFalse($container->hasDefinition('fragment.renderer.esi'), 'The ESI fragment renderer is not registered');
135143
}
136144

137145
public function testSsi()
138146
{
139147
$container = $this->createContainerFromFile('full');
140148

141149
$this->assertTrue($container->hasDefinition('ssi'), '->registerSsiConfiguration() loads ssi.xml');
150+
$this->assertTrue($container->hasDefinition('fragment.renderer.ssi'), 'The SSI fragment renderer is registered');
151+
}
152+
153+
public function testSsiDisabled()
154+
{
155+
$container = $this->createContainerFromFile('ssi_disabled');
156+
157+
$this->assertFalse($container->hasDefinition('fragment.renderer.ssi'), 'The SSI fragment renderer is not registered');
158+
}
159+
160+
public function testEsiAndSsiWithoutFragments()
161+
{
162+
$container = $this->createContainerFromFile('esi_and_ssi_without_fragments');
163+
164+
$this->assertFalse($container->hasDefinition('fragment.renderer.hinclude'), 'The HInclude fragment renderer is not registered');
165+
$this->assertTrue($container->hasDefinition('fragment.renderer.esi'), 'The ESI fragment renderer is registered');
166+
$this->assertTrue($container->hasDefinition('fragment.renderer.ssi'), 'The SSI fragment renderer is registered');
142167
}
143168

144169
public function testEnabledProfiler()

‎src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php
+1-4Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,7 @@ public function process(ContainerBuilder $container)
6161
$container->getDefinition('twig.extension.httpkernel')->addTag('twig.extension');
6262

6363
// inject Twig in the hinclude service if Twig is the only registered templating engine
64-
if (
65-
!$container->hasParameter('templating.engines')
66-
|| array('twig') == $container->getParameter('templating.engines')
67-
) {
64+
if ((!$container->hasParameter('templating.engines') || array('twig') == $container->getParameter('templating.engines')) && $container->hasDefinition('fragment.renderer.hinclude')) {
6865
$container->getDefinition('fragment.renderer.hinclude')
6966
->addTag('kernel.fragment_renderer', array('alias' => 'hinclude'))
7067
->replaceArgument(0, new Reference('twig'))

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.