Environment variables only ever carry strings. Left as-is, an override such as GRAV_CONFIG__system__cache__enabled=false lands in config as the string "false" - and PHP's (bool) cast (used throughout core, e.g. Cache::init()) treats any non-empty, non-"0" string as true, silently doing the opposite of what was asked. Coerce the two boolean literals; every other value (numbers, arbitrary strings) is left untouched, matching prior behavior.
InitializeProcessor.php. Line 235
if (is_string($value)) {
if (strcasecmp($value, 'true') === 0) {
$value = true;
} elseif (strcasecmp($value, 'false') === 0) {
$value = false;
}
}
Environment variables only ever carry strings. Left as-is, an override such as GRAV_CONFIG__system__cache__enabled=false lands in config as the string "false" - and PHP's (bool) cast (used throughout core, e.g. Cache::init()) treats any non-empty, non-"0" string as true, silently doing the opposite of what was asked. Coerce the two boolean literals; every other value (numbers, arbitrary strings) is left untouched, matching prior behavior.
InitializeProcessor.php. Line 235