diff --git a/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php b/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php index 6451ac9b0e..724187b1db 100644 --- a/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php +++ b/src/Symfony/Component/DependencyInjection/EnvVarProcessor.php @@ -141,15 +141,20 @@ class EnvVarProcessor implements EnvVarProcessorInterface } } + $loaders = $this->loaders; + $this->loaders = new \ArrayIterator(); + try { - while ((false === $env || null === $env) && $this->loaders->valid()) { - $loader = $this->loaders->current(); - $this->loaders->next(); + while ((false === $env || null === $env) && $loaders->valid()) { + $loader = $loaders->current(); + $loaders->next(); $this->loadedVars[] = $vars = $loader->loadEnvVars(); $env = $vars[$name] ?? false; } } catch (ParameterCircularReferenceException $e) { // skip loaders that need an env var that is not defined + } finally { + $this->loaders = $loaders; } if (false === $env || null === $env) {