diff --git a/Configuration/Internal/EnvSubstitutionNormalization.php b/Configuration/Internal/EnvSubstitutionNormalization.php index cfe0bf9..72008b8 100644 --- a/Configuration/Internal/EnvSubstitutionNormalization.php +++ b/Configuration/Internal/EnvSubstitutionNormalization.php @@ -50,8 +50,7 @@ private function doApply(NodeDefinition $node): void default => FILTER_DEFAULT, }; $node->beforeNormalization()->ifString()->then(fn (string $v) => $this->replaceEnvVariables($v, $filter))->end(); - } - if ($node instanceof VariableNodeDefinition) { + } elseif ($node instanceof VariableNodeDefinition) { $node->beforeNormalization()->always($this->replaceEnvVariablesRecursive(...))->end(); } @@ -65,7 +64,7 @@ private function doApply(NodeDefinition $node): void private function replaceEnvVariables(string $value, int $filter = FILTER_DEFAULT): mixed { $replaced = preg_replace_callback( - '/\$\{(?[a-zA-Z_]\w*)(?::-(?[^\n]*))?}/', + '/\$\{(?:env:)?(?[a-zA-Z_]\w*)(?::-(?[^\n]*))?}/', fn (array $matches): string => $this->envReader->read($matches['ENV_NAME']) ?? $matches['DEFAULT_VALUE'] ?? '', $value, -1,