openlss/lib-config

配置访问助手和环境管理器

0.0.15 2013-09-10 07:58 UTC

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表示无