Skip to content

Commit

Permalink
feature #23272 [FrameworkBundle] disable unusable fragment renderers …
Browse files Browse the repository at this point in the history
…(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
  • Loading branch information
fabpot committed Jul 3, 2017
2 parents 7787343 + 2b3d7f0 commit 98be08b
Show file tree
Hide file tree
Showing 12 changed files with 107 additions and 4 deletions.
Expand Up @@ -392,6 +392,8 @@ private function registerFormConfiguration($config, ContainerBuilder $container,
private function registerEsiConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
{
if (!$this->isConfigEnabled($container, $config)) {
$container->removeDefinition('fragment.renderer.esi');

return;
}

Expand All @@ -408,6 +410,8 @@ private function registerEsiConfiguration(array $config, ContainerBuilder $conta
private function registerSsiConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
{
if (!$this->isConfigEnabled($container, $config)) {
$container->removeDefinition('fragment.renderer.ssi');

return;
}

Expand All @@ -424,6 +428,8 @@ private function registerSsiConfiguration(array $config, ContainerBuilder $conta
private function registerFragmentsConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
{
if (!$this->isConfigEnabled($container, $config)) {
$container->removeDefinition('fragment.renderer.hinclude');

return;
}

Expand Down
@@ -0,0 +1,13 @@
<?php

$container->loadFromExtension('framework', array(
'fragments' => array(
'enabled' => false,
),
'esi' => array(
'enabled' => true,
),
'ssi' => array(
'enabled' => true,
),
));
@@ -0,0 +1,7 @@
<?php

$container->loadFromExtension('framework', array(
'esi' => array(
'enabled' => false,
),
));
@@ -0,0 +1,7 @@
<?php

$container->loadFromExtension('framework', array(
'ssi' => array(
'enabled' => false,
),
));
@@ -0,0 +1,13 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">

<framework:config>
<framework:fragments enabled="false" />
<framework:esi enabled="true" />
<framework:ssi enabled="true" />
</framework:config>
</container>
@@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">

<framework:config>
<framework:esi enabled="false" />
</framework:config>
</container>
@@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:framework="http://symfony.com/schema/dic/symfony"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">

<framework:config>
<framework:ssi enabled="false" />
</framework:config>
</container>
@@ -0,0 +1,7 @@
framework:
fragments:
enabled: false
esi:
enabled: true
ssi:
enabled: true
@@ -0,0 +1,3 @@
framework:
esi:
enabled: false
@@ -0,0 +1,3 @@
framework:
ssi:
enabled: false
Expand Up @@ -132,13 +132,38 @@ public function testEsi()
$container = $this->createContainerFromFile('full');

$this->assertTrue($container->hasDefinition('esi'), '->registerEsiConfiguration() loads esi.xml');
$this->assertTrue($container->hasDefinition('fragment.renderer.esi'), 'The ESI fragment renderer is registered');
}

public function testEsiDisabled()
{
$container = $this->createContainerFromFile('esi_disabled');

$this->assertFalse($container->hasDefinition('fragment.renderer.esi'), 'The ESI fragment renderer is not registered');
}

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

$this->assertTrue($container->hasDefinition('ssi'), '->registerSsiConfiguration() loads ssi.xml');
$this->assertTrue($container->hasDefinition('fragment.renderer.ssi'), 'The SSI fragment renderer is registered');
}

public function testSsiDisabled()
{
$container = $this->createContainerFromFile('ssi_disabled');

$this->assertFalse($container->hasDefinition('fragment.renderer.ssi'), 'The SSI fragment renderer is not registered');
}

public function testEsiAndSsiWithoutFragments()
{
$container = $this->createContainerFromFile('esi_and_ssi_without_fragments');

$this->assertFalse($container->hasDefinition('fragment.renderer.hinclude'), 'The HInclude fragment renderer is not registered');
$this->assertTrue($container->hasDefinition('fragment.renderer.esi'), 'The ESI fragment renderer is registered');
$this->assertTrue($container->hasDefinition('fragment.renderer.ssi'), 'The SSI fragment renderer is registered');
}

public function testEnabledProfiler()
Expand Down
Expand Up @@ -61,10 +61,7 @@ public function process(ContainerBuilder $container)
$container->getDefinition('twig.extension.httpkernel')->addTag('twig.extension');

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

0 comments on commit 98be08b

Please sign in to comment.