openlss / lib-config
配置访问助手和环境管理器
0.0.15
2013-09-10 07:58 UTC
Requires
- php: >=5.3.2
- openlss/func-mda: dev-master
Requires (Dev)
- openlss/core-boot: dev-master
README
配置访问助手和环境管理器
使用方法
//build config $config = array(); $config['test1'] = 'test'; $config['test2']['sec'] = 'test'; $config['test3']['sec'] = 'test2'; //load config Config::setConfig($config); unset($config); //set an additional Config::set('test2.newsec',null,'testvalue'); //get options $test = Config::get('test1'); $test2 = Config::get('test2.sec'); $test3 = Config::get('test2.newsec'); //get merged $db = Config::getMerged('sec'); //will return test2
单例模式
尽管所有方法都是静态的,但Config使用内部单例来操作。
要获取单例,请使用以下方法
//use the clone keyword to actually copy the object (this is optional) $inst = clone Config::_get(); //load up a new temporary config Config::setConfig($newconfig); //restore the old config Config::$inst = clone $inst; unset($inst);
引用
(object) _get()
返回当前单例(如果不存在则创建一个)
(void) setConfig($config)
将传入的数组设置为主配置。这将与现有配置合并
(void) resetConfig($config)
重置内部配置注册表
(void) dumpConfig($config)
var_dumps内部配置。注意:请使用输出缓冲区捕获此内容
(void) setDefaults($config)
用于包,将传入的配置设置在内部配置下方。例如
self::_get()->config = array_merge($config,self::_get()->config);
这允许用户空间的重写无论注册时间如何都保持有效。
(mixed) set($sec,$name,$value)
在配置中设置一个值
- $sec 配置部分(可以是MDA密钥)NULL表示无
- $name 配置名称(可以是MDA密钥)NULL表示无
- $value 要设置的值 返回要设置的值
(bool) exists($sec,$name=null)
检查是否存在值
- $sec 配置部分(可以是MDA密钥)NULL表示无
- $name 配置名称(可以是MDA密钥)NULL表示无
(mixed) get($sec=null,$name=null)
从配置结构中获取值
- $sec 配置部分(可以是MDA密钥)NULL表示无
- $name 配置名称(可以是MDA密钥)NULL表示无
(mixed) getMerged($sec,$name=null)
从配置树中获取合并值。考虑以下配置结构
//full tree $config['db']['driver'] = 'mysql'; $config['admin']['db']['driver'] = 'sqlite3'; Config::setConfig($config); $val = Config::getMerged('admin','db.driver'); //returns 'sqllite' //shorthand tree $config['db']['driver'] = 'mysql'; Config::setConfig($config); $val = Config::getMerged('admin','db.driver'); //returns 'mysql'
目的是从子根中检索一个部分,并且优雅地向上查看。
- $sec 配置部分(可以是MDA密钥)NULL表示无
- $name 配置名称(可以是MDA密钥)NULL表示无