Fix env fallback to an unresolved variable
This commit is contained in:
parent
8a6090793b
commit
ad6df01b9f
@ -1534,12 +1534,16 @@ class ContainerBuilder extends Container implements TaggedContainerInterface
|
||||
return $value;
|
||||
}
|
||||
|
||||
foreach ($bag->getEnvPlaceholders() as $env => $placeholders) {
|
||||
if (isset($placeholders[$value])) {
|
||||
$envPlaceholders = $bag->getEnvPlaceholders();
|
||||
if (isset($envPlaceholders[$name][$value])) {
|
||||
$bag = new ParameterBag($bag->all());
|
||||
|
||||
return $bag->unescapeValue($bag->get("env($name)"));
|
||||
}
|
||||
foreach ($envPlaceholders as $env => $placeholders) {
|
||||
if (isset($placeholders[$value])) {
|
||||
return $this->getEnv($env);
|
||||
}
|
||||
}
|
||||
|
||||
$this->resolving["env($name)"] = true;
|
||||
|
@ -738,6 +738,20 @@ class ContainerBuilderTest extends TestCase
|
||||
$this->assertSame('someFooBar', $container->getParameter('baz'));
|
||||
}
|
||||
|
||||
public function testFallbackEnv()
|
||||
{
|
||||
putenv('DUMMY_FOO=foo');
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
$container->setParameter('foo', '%env(DUMMY_FOO)%');
|
||||
$container->setParameter('bar', 'bar%env(default:foo:DUMMY_BAR)%');
|
||||
|
||||
$container->compile(true);
|
||||
putenv('DUMMY_FOO');
|
||||
|
||||
$this->assertSame('barfoo', $container->getParameter('bar'));
|
||||
}
|
||||
|
||||
public function testCastEnv()
|
||||
{
|
||||
$container = new ContainerBuilder();
|
||||
|
Reference in New Issue
Block a user