@@ -52,9 +52,11 @@ public static function get(string $key, $default = null) {
5252 * @return array<string, mixed>
5353 */
5454 private static function getEnvConfig (array $ config ): array {
55- foreach (getenv () as $ var => $ value ) {
56- if (str_starts_with ($ var , 'PCA_ ' )) {
57- $ config = self ::envVarToArray ($ config , $ var , $ value );
55+ $ vars = preg_grep ('/^PCA_/ ' , array_keys (getenv ()));
56+
57+ if ($ vars !== false && count ($ vars )) {
58+ foreach ($ vars as $ var ) {
59+ self ::envVarToArray ($ config , $ var , (string ) getenv ($ var ));
5860 }
5961 }
6062
@@ -67,10 +69,8 @@ private static function getEnvConfig(array $config): array {
6769 * It allows the app to use ENV variables and config.php together.
6870 *
6971 * @param array<string, mixed> $array
70- *
71- * @return array<string, mixed>
7272 */
73- private static function envVarToArray (array $ array , string $ var , string $ value ): array {
73+ private static function envVarToArray (array & $ array , string $ var , string $ value ): void {
7474 $ var = substr ($ var , 4 );
7575 $ keys = array_map (strtolower (...), explode ('_ ' , $ var ));
7676
@@ -81,9 +81,7 @@ private static function envVarToArray(array $array, string $var, string $value):
8181
8282 unset($ keys [$ i ]);
8383
84- if (!isset ($ array [$ key ]) || !is_array ($ array [$ key ])) {
85- $ array [$ key ] = [];
86- }
84+ $ array = &$ array [$ key ];
8785 }
8886
8987 if (json_validate ($ value )) {
@@ -95,8 +93,6 @@ private static function envVarToArray(array $array, string $var, string $value):
9593 }
9694
9795 $ array [array_shift ($ keys )] = $ value ;
98-
99- return $ array ;
10096 }
10197
10298 /**
0 commit comments