Skip to content

Commit 254edb4

Browse files
committed
Ability to set empty version strategy in packages
1 parent bdcc77f commit 254edb4

File tree

9 files changed

+40
-6
lines changed

9 files changed

+40
-6
lines changed

DependencyInjection/Configuration.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public function getConfigTreeBuilder()
9999

100100
foreach ($v['templating']['packages'] as $name => $config) {
101101
$v['assets']['packages'][$name] = array(
102-
'version' => (string) $config['version'],
102+
'version' => null === $config['version'] ? null : (string) $config['version'],
103103
'version_format' => $config['version_format'],
104104
'base_path' => '',
105105
'base_urls' => array_values(array_unique(array_merge($config['base_urls']['http'], $config['base_urls']['ssl']))),
@@ -488,7 +488,13 @@ private function addTemplatingSection(ArrayNodeDefinition $rootNode)
488488
->prototype('array')
489489
->fixXmlConfig('base_url')
490490
->children()
491-
->scalarNode('version')->defaultNull()->end()
491+
->scalarNode('version')
492+
->defaultNull()
493+
->beforeNormalization()
494+
->ifTrue(function ($v) { return '' === $v; })
495+
->then(function ($v) { return; })
496+
->end()
497+
->end()
492498
->scalarNode('version_format')->defaultValue('%%s?%%s')->end()
493499
->arrayNode('base_urls')
494500
->performNoDeepMerging()
@@ -547,7 +553,12 @@ private function addAssetsSection(ArrayNodeDefinition $rootNode)
547553
->prototype('array')
548554
->fixXmlConfig('base_url')
549555
->children()
550-
->scalarNode('version')->defaultNull()->end()
556+
->scalarNode('version')
557+
->beforeNormalization()
558+
->ifTrue(function ($v) { return '' === $v; })
559+
->then(function ($v) { return; })
560+
->end()
561+
->end()
551562
->scalarNode('version_format')->defaultNull()->end()
552563
->scalarNode('base_path')->defaultValue('')->end()
553564
->arrayNode('base_urls')

DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,7 @@ private function registerAssetsConfiguration(array $config, ContainerBuilder $co
589589

590590
$namedPackages = array();
591591
foreach ($config['packages'] as $name => $package) {
592-
if (null === $package['version']) {
592+
if (!array_key_exists('version', $package)) {
593593
$version = $defaultVersion;
594594
} else {
595595
$format = $package['version_format'] ?: $config['version_format'];

Tests/DependencyInjection/Fixtures/php/assets.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
'bar' => array(
2121
'base_urls' => array('https://bar2.example.com'),
2222
),
23+
'bar_null_version' => array(
24+
'version' => null,
25+
'base_urls' => array('https://bar3.example.com'),
26+
),
2327
),
2428
),
2529
));

Tests/DependencyInjection/Fixtures/php/legacy_templating_assets.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
'bar' => array(
1919
'base_urls' => array('https://bar2.example.com'),
2020
),
21+
'bar_null_version' => array(
22+
'version' => null,
23+
'base_urls' => array('https://bar3.example.com'),
24+
),
2125
),
2226
),
2327
));

Tests/DependencyInjection/Fixtures/xml/assets.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
<framework:package name="bar">
1919
<framework:base-url>https://bar2.example.com</framework:base-url>
2020
</framework:package>
21+
<framework:package name="bar_null_version" version="">
22+
<framework:base-url>https://bar3.example.com</framework:base-url>
23+
</framework:package>
2124
</framework:assets>
2225
</framework:config>
2326
</container>

Tests/DependencyInjection/Fixtures/xml/legacy_templating_assets.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
<framework:package name="bar">
1919
<framework:base-url>https://bar2.example.com</framework:base-url>
2020
</framework:package>
21+
<framework:package name="bar_null_version" version="">
22+
<framework:base-url>https://bar3.example.com</framework:base-url>
23+
</framework:package>
2124
</framework:templating>
2225
</framework:config>
2326
</container>

Tests/DependencyInjection/Fixtures/yml/assets.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,6 @@ framework:
1414
version_format: %%s-%%s
1515
bar:
1616
base_urls: ["https://bar2.example.com"]
17+
bar_null_version:
18+
version: null
19+
base_urls: "https://bar3.example.com"

Tests/DependencyInjection/Fixtures/yml/legacy_templating_assets.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,6 @@ framework:
1313
version_format: %%s-%%s
1414
bar:
1515
base_urls: "https://bar2.example.com"
16+
bar_null_version:
17+
version: null
18+
base_urls: "https://bar3.example.com"

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ private function checkAssetsPackages(ContainerBuilder $container, $legacy = fals
511511

512512
// packages
513513
$packages = $packages->getArgument(1);
514-
$this->assertCount($legacy ? 3 : 4, $packages);
514+
$this->assertCount($legacy ? 4 : 5, $packages);
515515

516516
if (!$legacy) {
517517
$package = $container->getDefinition($packages['images_path']);
@@ -525,7 +525,10 @@ private function checkAssetsPackages(ContainerBuilder $container, $legacy = fals
525525
$this->assertPathPackage($container, $package, '', '1.0.0', '%%s-%%s');
526526

527527
$package = $container->getDefinition($packages['bar']);
528-
$this->assertUrlPackage($container, $package, array('https://bar2.example.com'), $legacy ? '' : 'SomeVersionScheme', $legacy ? '%%s?%%s' : '%%s?version=%%s');
528+
$this->assertUrlPackage($container, $package, array('https://bar2.example.com'), $legacy ? null : 'SomeVersionScheme', $legacy ? '%%s?%%s' : '%%s?version=%%s');
529+
530+
$this->assertEquals($legacy ? 'assets.empty_version_strategy' : 'assets._version__default', (string) $container->getDefinition('assets._package_bar')->getArgument(1));
531+
$this->assertEquals('assets.empty_version_strategy', (string) $container->getDefinition('assets._package_bar_null_version')->getArgument(1));
529532
}
530533

531534
private function assertPathPackage(ContainerBuilder $container, DefinitionDecorator $package, $basePath, $version, $format)

0 commit comments

Comments
 (0)