@@ -86,23 +86,32 @@ protected function setEnv(array $vars, $override, $mode = self::PUTENV)
8686 continue ;
8787 }
8888
89- $ value = $ this ->resolveRef ($ value );
90-
91- $ this ->toEnv ($ key , $ value , $ mode );
92- $ this ->toServer ($ key , $ value , $ mode );
93- $ this ->toPutenv ($ key , $ value , $ mode );
89+ $ this ->set ($ key , $ value , $ mode );
9490 }
91+
92+ $ this ->resolveRefs ($ vars , $ mode );
9593 }
9694
97- protected function resolveRef ( $ value )
95+ protected function set ( $ key , $ value, $ mode )
9896 {
99- if (!$ value || \strpos ($ value , '${ ' ) === false ) {
100- return $ value ;
101- }
97+ $ this ->toEnv ($ key , $ value , $ mode );
98+ $ this ->toServer ($ key , $ value , $ mode );
99+ $ this ->toPutenv ($ key , $ value , $ mode );
100+ }
102101
103- return \preg_replace_callback ('~\$\{(\w+)\}~ ' , function ($ m ) {
104- return (null === $ ref = Retriever::getEnv ($ m [1 ], null )) ? $ m [0 ] : $ ref ;
105- }, $ value );
102+ protected function resolveRefs ($ vars , $ mode )
103+ {
104+ foreach ($ vars as $ key => $ value ) {
105+ if (!$ value || \strpos ($ value , '${ ' ) === false ) {
106+ continue ;
107+ }
108+
109+ $ value = \preg_replace_callback ('~\$\{(\w+)\}~ ' , function ($ m ) {
110+ return (null === $ ref = Retriever::getEnv ($ m [1 ], null )) ? $ m [0 ] : $ ref ;
111+ }, $ value );
112+
113+ $ this ->set ($ key , $ value , $ mode );
114+ }
106115 }
107116
108117 private function toEnv ($ key , $ value , $ mode )
0 commit comments