tomwright / php-config
此包最新版本(1.0.2)没有可用的许可证信息。
一个简单的类,使配置变得容易。
1.0.2
2017-11-22 22:54 UTC
Requires
- phpunit/phpunit: *
- tomwright/json: ^1.0
README
安装
composer require tomwright/php-config
通用用法
创建一个Config
实例开始使用
$config = new Config();
如下添加配置值
$config->put('key', 'value');
如下从配置中获取值
$value = $config->get('key');
存储数据
您可以在key
字符串中添加分隔符,以便以稍微不同的方式存储数据。
例如,假设我们有一个联系人姓名和电子邮件地址。您可以用以下任何一种方式设置
$config->put('contact', [ 'name' => 'Tom', 'email' => 'contact@tomwright.me', ]); $config->put('contact.name', 'Tom'); $config->put('contact.email', 'contact@tomwright.me');
您甚至可以混合使用上述方法
$config->put('contact', [ 'name' => 'Tom', ]); $config->put('contact.email', 'contact@tomwright.me');
获取数据
在获取数据时,您也可以使用与上述类似的方式使用点分隔符。
假设我们存储了相同的联系人详细信息,让我们看看以下内容
$config->get('contact'); // [ 'name' => 'Tom', 'email' => 'contact@tomwright.me' ] $config->get('contact.name'); // Tom $config->get('contact.email'); // contact@tomwright.me
分隔符
您可以在key中使用尽可能多的分隔符。以下将产生与上述相同的效果,只是存储层次更深。
$config->put('company.person.tom.email', 'contact@tomwright.me');
$config->put('company.person.jim.email', 'jim@tomwright.me');
$config->get('company');
/*
[
'person' => [
'tom' => [ 'email' => 'contact@tomwright.me' ],
'jim' => [ 'email' => 'jim@tomwright.me' ],
]
]
*/
如果您想使用除.
字符以外的分隔符,您可以使用setSeparator()
方法设置,或者在Config构造函数中传递。
$config = new Config([ 'separator' => '|', // Equal ]); $config->setSeparator('|'); // Equal $config->put('contact', [ 'contact' => [ 'name' => 'Tom', 'email' => 'contact@tomwright.me', ], ]); $config->get('contact|name'); // Tom $config->get('contact.email'); // NULL
配置读取器
配置读取器是帮助您自动填充配置对象的类。要使用配置读取器,只需将其传递给$config->read()
。
$config = new Config();
$config->read(new SomeConfigReader());
$config->get('some.value.from.my.reader');
您还可以将配置读取器的数组传递给Config构造函数
$config = new Config([
'readers' => [
new SomeConfigReader(),
],
]);
$config->get('some.value.from.my.reader');
现有配置读取器
如果您想创建配置读取器,请随时创建。唯一的要求是实现ConfigReader
接口。如果您已经创建了配置读取器并希望它在这里显示,请提交一个pull请求。