$value) { if(!isset($global_config[$key])) { $global_config[$key] = $value; } else { if(is_array($value)) { foreach($value as $vkey => $vvalue) { if(!isset($global_config[$key][$vkey])) { $global_config[$key][$vkey] = $vvalue; } else { self::recursiveMerge($global_config[$key], $value); } } } else { $global_config[$key] = $value; } } } } public static function getAll() { return self::$global_config; } public static function get($var) { if(!self::$file_loaded) { throw new Exception('Yaml file is not loaded yet, please see sfYaml::load method'); } $road = self::$global_config; $parts = explode('_', $var); while(true) { $shift = array_shift($parts); if(isset($road[$shift])) { if(empty($parts)) { return $road[$shift]; } else { $road = $road[$shift]; } } else { return null; } } } }