Chris@14: Chris@14: * Chris@14: * For the full copyright and license information, please view the LICENSE Chris@14: * file that was distributed with this source code. Chris@14: */ Chris@14: Chris@14: namespace Symfony\Component\DependencyInjection\Compiler; Chris@14: Chris@14: use Symfony\Component\DependencyInjection\Definition; Chris@14: Chris@14: /** Chris@14: * Replaces env var placeholders by their current values. Chris@14: */ Chris@14: class ResolveEnvPlaceholdersPass extends AbstractRecursivePass Chris@14: { Chris@14: protected function processValue($value, $isRoot = false) Chris@14: { Chris@17: if (\is_string($value)) { Chris@14: return $this->container->resolveEnvPlaceholders($value, true); Chris@14: } Chris@14: if ($value instanceof Definition) { Chris@14: $changes = $value->getChanges(); Chris@14: if (isset($changes['class'])) { Chris@14: $value->setClass($this->container->resolveEnvPlaceholders($value->getClass(), true)); Chris@14: } Chris@14: if (isset($changes['file'])) { Chris@14: $value->setFile($this->container->resolveEnvPlaceholders($value->getFile(), true)); Chris@14: } Chris@14: } Chris@14: Chris@14: $value = parent::processValue($value, $isRoot); Chris@14: Chris@17: if ($value && \is_array($value) && !$isRoot) { Chris@14: $value = array_combine($this->container->resolveEnvPlaceholders(array_keys($value), true), $value); Chris@14: } Chris@14: Chris@14: return $value; Chris@14: } Chris@14: }