searbe/brite-config

一个简单的PHP INI(或纯数组)配置类,支持点符号访问

此软件包的官方仓库似乎已不存在,因此该软件包已被冻结。

v1.0.1 2014-01-16 08:01 UTC

This package is not auto-updated.

Last update: 2020-01-06 06:56:35 UTC


README

一个简单的PHP INI(或纯数组)配置类,支持点符号访问

  • 小巧、简单且单元测试 构建状态
  • 解析INI文件和PHP数组
  • 支持配置继承
  • 通过 Composer / Packagist 提供

用法

你需要一个配置文件。例如 .ini 文件的内容

[default]

database.host = bar
database.user = foo
database.pass = baz

service.api_key = 123456

email = test@dev.com

[staging:default]

database.user = foo2
database.pass = baz2

[production:staging]

database.user = foo1
database.pass = baz1
email = test@production.com

或者,如果你更喜欢纯PHP数组

<?php

$config['default']['database']['host'] = 'bar';
$config['default']['database']['user'] = 'foo';
$config['default']['database']['pass'] = 'baz';

$config['default']['service']['api_key'] = '123456';
$config['default']['email'] = 'test@dev.com';

$config['production']['extends'] = 'staging';
$config['production']['database']['user'] = 'foo1';
$config['production']['database']['pass'] = 'baz1';
$config['production']['email'] = 'test@production.com';

$config['staging']['extends'] = 'default';
$config['staging']['database']['user'] = 'foo2';
$config['staging']['database']['pass'] = 'baz2';

如果你想要使用'registry',请在启动时注册你的配置文件

<?php

use Brite\Config\Config;

// Registering as the 'default' config means you can grab the config
// without specifying a name.
Config::register('default', __DIR__ . '/test_config/config.php', 'staging');

然后,在需要时访问你的配置

<?php

use Brite\Config\Config;

// This grabs the config registered as 'default'
$config = Config::instance();

echo $config->get('database.host');
// output: "bar"
echo $config->get('database.user');
// output: "foo1"

或者,如果你有多个配置文件,你可以在启动时将配置文件命名为除'default'之外的其他名称,并通过以下方式访问

<?php

use Brite\Config\Config;

// This grabs the config registered as 'database'
$dbConfig = Config::instance('database');

echo $dbConfig->get('host');
echo $dbConfig->get('user');

然而,我们都知道全局访问是不好的,对吧?你可以创建自己的实例来包含你的配置,而不是使用全局静态注册表

<?php

use Brite\Config\IniConfig;

$config = new IniConfig('/path/to/file.ini', 'staging');

// Now register $config with your registry

... 就这样。简单!