@@ -51,13 +51,22 @@ public function process(ContainerBuilder $container)
51
51
foreach ($ resolvingBag ->getEnvPlaceholders () + $ resolvingBag ->getUnusedEnvPlaceholders () as $ env => $ placeholders ) {
52
52
$ values = [];
53
53
if (false === $ i = strpos ($ env , ': ' )) {
54
- $ default = $ defaultBag ->has ("env( $ env) " ) ? $ defaultBag ->get ("env( $ env) " ) : self ::TYPE_FIXTURES ['string ' ];
55
- $ defaultType = null !== $ default ? get_debug_type ($ default ) : 'string ' ;
54
+ [$ default , $ defaultType ] = $ this ->getParameterDefaultAndDefaultType ("env( $ env) " , $ defaultBag );
56
55
$ values [$ defaultType ] = $ default ;
57
56
} else {
58
57
$ prefix = substr ($ env , 0 , $ i );
59
- foreach ($ envTypes [$ prefix ] ?? ['string ' ] as $ type ) {
60
- $ values [$ type ] = self ::TYPE_FIXTURES [$ type ] ?? null ;
58
+
59
+ if ('default ' === $ prefix ) {
60
+ [$ parameter , $ envVar ] = explode (': ' , substr ($ env , $ i + 1 ));
61
+ [$ defaultParameter , $ defaultParameterType ] = $ this ->getParameterDefaultAndDefaultType ($ parameter , $ defaultBag );
62
+ [$ defaultEnv , $ defaultEnvType ] = $ this ->getParameterDefaultAndDefaultType ("env( $ envVar) " , $ defaultBag );
63
+
64
+ $ values [$ defaultParameterType ] = $ defaultParameter ;
65
+ $ values [$ defaultEnvType ] = $ defaultEnv ;
66
+ } else {
67
+ foreach ($ envTypes [$ prefix ] ?? ['string ' ] as $ type ) {
68
+ $ values [$ type ] = self ::TYPE_FIXTURES [$ type ] ?? null ;
69
+ }
61
70
}
62
71
}
63
72
foreach ($ placeholders as $ placeholder ) {
@@ -100,4 +109,15 @@ public function getExtensionConfig(): array
100
109
$ this ->extensionConfig = [];
101
110
}
102
111
}
112
+
113
+ /**
114
+ * @return array{0: string, 1: string}
115
+ */
116
+ private function getParameterDefaultAndDefaultType (string $ name , ParameterBag $ defaultBag ): array
117
+ {
118
+ $ default = $ defaultBag ->has ($ name ) ? $ defaultBag ->get ($ name ) : self ::TYPE_FIXTURES ['string ' ];
119
+ $ defaultType = null !== $ default ? get_debug_type ($ default ) : 'string ' ;
120
+
121
+ return [$ default , $ defaultType ];
122
+ }
103
123
}
0 commit comments