Skip to content

Commit d42c15d

Browse files
committed
Update Config.php
1 parent db324e7 commit d42c15d

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

src/Config.php

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)