Skip to content

Commit 7f5ce40

Browse files
committed
disable the assets helper when assets are disabled
1 parent ef10c5f commit 7f5ce40

File tree

8 files changed

+55
-3
lines changed

8 files changed

+55
-3
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,11 @@ private function registerTemplatingConfiguration(array $config, $ide, ContainerB
547547
'Symfony\\Bundle\\FrameworkBundle\\Templating\\Loader\\FilesystemLoader',
548548
));
549549

550-
$container->getDefinition('templating.helper.assets')->replaceArgument(0, new Reference('assets.packages'));
550+
if ($container->has('assets.packages')) {
551+
$container->getDefinition('templating.helper.assets')->replaceArgument(0, new Reference('assets.packages'));
552+
} else {
553+
$container->removeDefinition('templating.helper.assets');
554+
}
551555
}
552556
}
553557

Lines 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+
'templating' => array(
5+
'engines' => array('php', 'twig'),
6+
),
7+
));
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
$container->loadFromExtension('framework', array(
4+
'assets' => false,
5+
'templating' => array(
6+
'engines' => array('php'),
7+
),
8+
));
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
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:templating>
10+
<framework:engine>php</framework:engine>
11+
<framework:engine>twig</framework:engine>
12+
</framework:templating>
13+
</framework:config>
14+
</container>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
framework:
2+
templating:
3+
engines: [php, twig]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
framework:
2+
assets: false
3+
templating:
4+
engines: [php]

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -436,14 +436,21 @@ public function testAssetHelperWhenAssetsAreEnabled()
436436
$this->assertSame('assets.packages', (string) $packages);
437437
}
438438

439-
public function testAssetHelperWhenTemplatesAreEnabledAndAssetsAreDisabled()
439+
public function testAssetHelperWhenTemplatesAreEnabledAndNoAssetsConfiguration()
440440
{
441-
$container = $this->createContainerFromFile('full');
441+
$container = $this->createContainerFromFile('templating_no_assets');
442442
$packages = $container->getDefinition('templating.helper.assets')->getArgument(0);
443443

444444
$this->assertSame('assets.packages', (string) $packages);
445445
}
446446

447+
public function testAssetsHelperIsRemovedWhenPhpTemplatingEngineIsEnabledAndAssetsAreDisabled()
448+
{
449+
$container = $this->createContainerFromFile('templating_php_assets_disabled');
450+
451+
$this->assertTrue(!$container->has('templating.helper.assets'), 'The templating.helper.assets helper service is removed when assets are disabled.');
452+
}
453+
447454
public function testAssetHelperWhenAssetsAndTemplatesAreDisabled()
448455
{
449456
$container = $this->createContainerFromFile('default_config');

Tests/DependencyInjection/XmlFrameworkExtensionTest.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,9 @@ protected function loadFromFile(ContainerBuilder $container, $file)
2222
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/Fixtures/xml'));
2323
$loader->load($file.'.xml');
2424
}
25+
26+
public function testAssetsHelperIsRemovedWhenPhpTemplatingEngineIsEnabledAndAssetsAreDisabled()
27+
{
28+
$this->markTestSkipped('The assets key cannot be set to false using the XML configuration format.');
29+
}
2530
}

0 commit comments

Comments
 (0)