Chris@14
|
1 <?php
|
Chris@14
|
2
|
Chris@14
|
3 /*
|
Chris@14
|
4 * This file is part of the Symfony package.
|
Chris@14
|
5 *
|
Chris@14
|
6 * (c) Fabien Potencier <fabien@symfony.com>
|
Chris@14
|
7 *
|
Chris@14
|
8 * For the full copyright and license information, please view the LICENSE
|
Chris@14
|
9 * file that was distributed with this source code.
|
Chris@14
|
10 */
|
Chris@14
|
11
|
Chris@14
|
12 namespace Symfony\Component\DependencyInjection\Compiler;
|
Chris@14
|
13
|
Chris@14
|
14 use Symfony\Component\DependencyInjection\Definition;
|
Chris@14
|
15
|
Chris@14
|
16 /**
|
Chris@14
|
17 * Replaces env var placeholders by their current values.
|
Chris@14
|
18 */
|
Chris@14
|
19 class ResolveEnvPlaceholdersPass extends AbstractRecursivePass
|
Chris@14
|
20 {
|
Chris@14
|
21 protected function processValue($value, $isRoot = false)
|
Chris@14
|
22 {
|
Chris@14
|
23 if (is_string($value)) {
|
Chris@14
|
24 return $this->container->resolveEnvPlaceholders($value, true);
|
Chris@14
|
25 }
|
Chris@14
|
26 if ($value instanceof Definition) {
|
Chris@14
|
27 $changes = $value->getChanges();
|
Chris@14
|
28 if (isset($changes['class'])) {
|
Chris@14
|
29 $value->setClass($this->container->resolveEnvPlaceholders($value->getClass(), true));
|
Chris@14
|
30 }
|
Chris@14
|
31 if (isset($changes['file'])) {
|
Chris@14
|
32 $value->setFile($this->container->resolveEnvPlaceholders($value->getFile(), true));
|
Chris@14
|
33 }
|
Chris@14
|
34 }
|
Chris@14
|
35
|
Chris@14
|
36 $value = parent::processValue($value, $isRoot);
|
Chris@14
|
37
|
Chris@14
|
38 if ($value && is_array($value) && !$isRoot) {
|
Chris@14
|
39 $value = array_combine($this->container->resolveEnvPlaceholders(array_keys($value), true), $value);
|
Chris@14
|
40 }
|
Chris@14
|
41
|
Chris@14
|
42 return $value;
|
Chris@14
|
43 }
|
Chris@14
|
44 }
|