Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e6dc6be

Browse files
committed
[DependencyInjection] Process PHP configs using the ContainerConfigurator
1 parent c58c599 commit e6dc6be

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

src/Symfony/Component/DependencyInjection/Loader/PhpFileLoader.php

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -145,16 +145,8 @@ class_exists(ContainerConfigurator::class);
145145

146146
$callback(...$arguments);
147147

148-
$this->loadFromExtensions($configBuilders);
149-
}
150-
151-
/**
152-
* @param iterable<ConfigBuilderInterface> $configBuilders
153-
*/
154-
private function loadFromExtensions(iterable $configBuilders): void
155-
{
156148
foreach ($configBuilders as $configBuilder) {
157-
$this->loadExtensionConfig($configBuilder->getExtensionAlias(), $configBuilder->toArray());
149+
$containerConfigurator->extension($configBuilder->getExtensionAlias(), $configBuilder->toArray(), $this->prepend);
158150
}
159151

160152
$this->loadExtensionConfigs();
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
use Symfony\Component\DependencyInjection\Tests\Fixtures\AcmeConfig;
4+
use function Symfony\Component\DependencyInjection\Loader\Configurator\env;
5+
6+
return function (AcmeConfig $config) {
7+
$config->color(env('COLOR'));
8+
};

src/Symfony/Component/DependencyInjection/Tests/Loader/PhpFileLoaderTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,4 +243,14 @@ public function testServiceWithServiceLocatorArgument()
243243
$values = ['foo' => new Definition(\stdClass::class), 'bar' => new Definition(\stdClass::class)];
244244
$this->assertEquals([new ServiceLocatorArgument($values)], $container->getDefinition('locator_dependent_inline_service')->getArguments());
245245
}
246+
247+
public function testConfigBuilderEnvConfigurator()
248+
{
249+
$container = new ContainerBuilder();
250+
$container->registerExtension(new \AcmeExtension());
251+
$loader = new PhpFileLoader($container, new FileLocator(\dirname(__DIR__).'/Fixtures'), 'prod', new ConfigBuilderGenerator(sys_get_temp_dir()), true);
252+
$loader->load('config/config_builder_env_configurator.php');
253+
254+
$this->assertIsString($container->getExtensionConfig('acme')[0]['color']);
255+
}
246256
}

0 commit comments

Comments
 (0)