1
0
Fork 0

itteratively expand key and attempt to match

fixes #4459 (also)
pull/4470/head
Rob Bast 2015-10-01 15:05:17 +02:00
parent c41079192f
commit 7bd0c5abdd
1 changed files with 11 additions and 9 deletions

View File

@ -238,17 +238,19 @@ EOT
} elseif (strpos($settingKey, '.')) {
$bits = explode('.', $settingKey);
$data = $data['config'];
$match = false;
foreach ($bits as $bit) {
if (isset($data[$bit])) {
$data = $data[$bit];
} elseif (isset($data[implode('.', $bits)])) {
// last bit can contain domain names and such so try to join whatever is left if it exists
$data = $data[implode('.', $bits)];
break;
} else {
throw new \RuntimeException($settingKey.' is not defined');
$key = isset($key) ? $key.'.'.$bit : $bit;
$match = false;
if (isset($data[$key])) {
$match = true;
$data = $data[$key];
unset($key);
}
array_shift($bits);
}
if (!$match) {
throw new \RuntimeException($settingKey.' is not defined.');
}
$value = $data;