Skip to content

Commit 2db7df8

Browse files
committed
Fix prepending strategy for php config loader
1 parent 68b1112 commit 2db7df8

File tree

5 files changed

+18
-3
lines changed

5 files changed

+18
-3
lines changed

Loader/PhpFileLoader.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ class_exists(ContainerConfigurator::class);
146146
$callback(...$arguments);
147147

148148
foreach ($configBuilders as $configBuilder) {
149-
$containerConfigurator->extension($configBuilder->getExtensionAlias(), $configBuilder->toArray(), $this->prepend);
149+
$this->loadExtensionConfig($configBuilder->getExtensionAlias(), ContainerConfigurator::processValue($configBuilder->toArray()));
150150
}
151151

152152
$this->loadExtensionConfigs();

Tests/Fixtures/config/config_builder.expected.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
parameters:
2-
acme.configs: [{ color: blue }]
2+
acme.configs: [{ color: red }, { color: blue }]
33

44
services:
55
service_container:
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<?php
22

3+
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
34
use Symfony\Component\DependencyInjection\Tests\Fixtures\AcmeConfig;
45

56
if ('prod' !== $env) {
67
return;
78
}
89

9-
return function (AcmeConfig $config) {
10+
return function (AcmeConfig $config, ContainerConfigurator $c) {
11+
$c->import('nested_config_builder.php');
12+
1013
$config->color('blue');
1114
};
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
use Symfony\Component\DependencyInjection\Tests\Fixtures\AcmeConfig;
4+
5+
if ('prod' !== $env) {
6+
return;
7+
}
8+
9+
return function (AcmeConfig $config) {
10+
$config->color('red');
11+
};

Tests/Loader/PhpFileLoaderTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public function testPrependExtensionConfig()
5656
$loader->load('config/config_builder.php');
5757

5858
$expected = [
59+
['color' => 'red'],
5960
['color' => 'blue'],
6061
['foo' => 'bar'],
6162
];

0 commit comments

Comments
 (0)