Implemented Config->removeNested() (#1499)

This commit is contained in:
Dylan K. Taylor 2017-10-30 16:32:48 +00:00 committed by GitHub
parent a342a61037
commit a770e681dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -376,6 +376,26 @@ class Config{
return $this->nestedCache[$key] = $base;
}
public function removeNested(string $key) : void{
$this->nestedCache = [];
$vars = explode(".", $key);
$currentNode =& $this->config;
while(count($vars) > 0){
$nodeName = array_shift($vars);
if(isset($currentNode[$nodeName])){
if(empty($vars)){ //final node
unset($currentNode[$nodeName]);
}elseif(is_array($currentNode[$nodeName])){
$currentNode =& $currentNode[$nodeName];
}
}else{
break;
}
}
}
/**
* @param $k
* @param mixed $default