[DI] Impossible to set an environment variable and then an array as container parameter
This commit is contained in:
parent
b783602622
commit
484a082eb1
@ -1294,6 +1294,11 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
|
||||
$format = '%%env(%s)%%';
|
||||
}
|
||||
|
||||
$bag = $this->getParameterBag();
|
||||
if (true === $format) {
|
||||
$value = $bag->resolveValue($value);
|
||||
}
|
||||
|
||||
if (is_array($value)) {
|
||||
$result = array();
|
||||
foreach ($value as $k => $v) {
|
||||
@ -1306,11 +1311,6 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
|
||||
if (!is_string($value)) {
|
||||
return $value;
|
||||
}
|
||||
|
||||
$bag = $this->getParameterBag();
|
||||
if (true === $format) {
|
||||
$value = $bag->resolveValue($value);
|
||||
}
|
||||
$envPlaceholders = $bag instanceof EnvPlaceholderParameterBag ? $bag->getEnvPlaceholders() : $this->envPlaceholders;
|
||||
|
||||
foreach ($envPlaceholders as $env => $placeholders) {
|
||||
|
@ -615,6 +615,28 @@ class ContainerBuilderTest extends TestCase
|
||||
unset($_ENV['DUMMY_ENV_VAR'], $_SERVER['DUMMY_SERVER_VAR'], $_SERVER['HTTP_DUMMY_VAR']);
|
||||
}
|
||||
|
||||
public function testResolveEnvValuesWithArray()
|
||||
{
|
||||
$_ENV['ANOTHER_DUMMY_ENV_VAR'] = 'dummy';
|
||||
|
||||
$dummyArray = array('1' => 'one', '2' => 'two');
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$container->setParameter('dummy', '%env(ANOTHER_DUMMY_ENV_VAR)%');
|
||||
$container->setParameter('dummy2', $dummyArray);
|
||||
|
||||
$container->resolveEnvPlaceholders('%dummy%', true);
|
||||
$container->resolveEnvPlaceholders('%dummy2%', true);
|
||||
|
||||
$this->assertInternalType('array', $container->resolveEnvPlaceholders('%dummy2%', true));
|
||||
|
||||
foreach ($dummyArray as $key => $value) {
|
||||
$this->assertArrayHasKey($key, $container->resolveEnvPlaceholders('%dummy2%', true));
|
||||
}
|
||||
|
||||
unset($_ENV['ANOTHER_DUMMY_ENV_VAR']);
|
||||
}
|
||||
|
||||
public function testCompileWithResolveEnv()
|
||||
{
|
||||
putenv('DUMMY_ENV_VAR=du%%y');
|
||||
|
Reference in New Issue
Block a user