@@ -52,11 +52,9 @@ public static function get(string $key, $default = null) {
5252 * @return array<string, mixed>
5353 */
5454 private static function getEnvConfig (array $ config ): array {
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 ));
55+ foreach (getenv () as $ var => $ value ) {
56+ if (str_starts_with ($ var , 'PCA_ ' )) {
57+ $ config = self ::envVarToArray ($ config , $ var , $ value );
6058 }
6159 }
6260
@@ -66,14 +64,15 @@ private static function getEnvConfig(array $config): array {
6664 /**
6765 * Convert ENV variable to an array.
6866 *
69- * It allows app to use ENV variables and config.php together.
67+ * It allows the app to use ENV variables and config.php together.
7068 *
7169 * @param array<string, mixed> $array
70+ *
71+ * @return array<string, mixed>
7272 */
73- private static function envVarToArray (array &$ array , string $ var , string $ value ): void {
74- $ var = str_replace ('PCA_ ' , '' , $ var );
75- $ keys = explode ('_ ' , $ var );
76- $ keys = array_map (strtolower (...), $ keys );
73+ private static function envVarToArray (array $ array , string $ var , string $ value ): array {
74+ $ var = substr ($ var , 4 );
75+ $ keys = array_map (strtolower (...), explode ('_ ' , $ var ));
7776
7877 foreach ($ keys as $ i => $ key ) {
7978 if (count ($ keys ) === 1 ) {
@@ -85,8 +84,6 @@ private static function envVarToArray(array &$array, string $var, string $value)
8584 if (!isset ($ array [$ key ]) || !is_array ($ array [$ key ])) {
8685 $ array [$ key ] = [];
8786 }
88-
89- $ array = &$ array [$ key ];
9087 }
9188
9289 if (json_validate ($ value )) {
@@ -98,6 +95,8 @@ private static function envVarToArray(array &$array, string $var, string $value)
9895 }
9996
10097 $ array [array_shift ($ keys )] = $ value ;
98+
99+ return $ array ;
101100 }
102101
103102 /**
0 commit comments