tomwright/php-config

此包最新版本(1.0.2)没有可用的许可证信息。

一个简单的类,使配置变得容易。

1.0.2 2017-11-22 22:54 UTC

This package is auto-updated.

Last update: 2024-09-15 07:10:40 UTC


README

Build Status Test Coverage Latest Stable Version Total Downloads Monthly Downloads Daily Downloads License

安装

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请求。