xeriab / konfig
另一个简单的配置加载库。
0.2.6
2016-10-18 08:39 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- nette/neon: ~2.4.0
- phpunit/phpunit: >=4.8 < 6.0
- scrutinizer/ocular: ~1.3.1
- squizlabs/php_codesniffer: ~3.0.0RC1
- symfony/yaml: ~3.1.5
- yosymfony/toml: ~0.3.3
Suggests
- nette/neon: ~2.4.0
- symfony/yaml: ~3.1.5
- yosymfony/toml: ~0.3.3
README
另一个简单的配置加载库。
Konfig 是一个简单的配置加载库,支持 INI
、JSON
、NEON
、PHP
、TOML
、XML
、Java-Properties
和 YML/YAML
文件。
需求
Konfig 需要 PHP 5.6+
,并建议使用 Yosymfony Toml 解析器、Nette NEON 和 PHP YAML 或 Symfony YAML。
安装
安装 Konfig 的推荐方式是通过 Composer。
$ composer require xeriab/konfig
使用
Konfig 设计得简单易用,轻量级。您可以使用它来加载、获取、设置和删除配置。
加载文件
可以通过工厂方法 load()
或直接实例化来创建 Konfig
对象。
use Exen\Konfig\Konfig; // Load a single file $config = Konfig::load('konfig.json'); $config = new Konfig('konfig.json'); // Load values from multiple files $config = new Konfig(['konfig.json', 'konfig.xml']); // Load all supported files in a directory $config = new Konfig(__DIR__ . '/konfig'); // Load values from optional files $config = new Konfig(['konfig.dist.json', 'konfig.json']);
根据文件扩展名解析和加载文件。
注意:当加载多个文件时,具有 重复键 的条目将采用最后一个加载的文件中的值。
注意:当加载目录时,路径将被 glob
化,并按名称字母顺序加载文件。
获取值
可以通过三种方式获取值。一是使用 get()
方法。
// Get value using key $debug = $config->get('debug'); // Get value using nested key $secret = $config->get('security.secret'); // Get a value with a fallback $ttl = $config->get('app.timeout', 3000);
第二种方法是将其用作数组。
// Get value using a simple key $debug = $config['debug']; // Get value using a nested key $secret = $config['security.secret']; // Get nested value like you would from a nested array $secret = $config['security']['secret'];
第三种方法是使用 all()
方法。
// Get all values $data = $config->all();
设置值
虽然 Konfig 支持通过 set()
或数组语法设置值,但通过这种方式进行的任何更改 都不会反映回源文件。按设计,如果您需要更改配置文件,您必须手动进行。
$config = Konfig::load('konfig.json'); // Sample value from our konfig file assert($config['secret'] == '123'); // Update konfig value to something else $config['secret'] = '456'; // Reload the file $config = Konfig::load('konfig.json'); // Same value as before assert($config['secret'] == '123'); // This will fail assert($config['secret'] == '456');
使用默认值
有时在您的项目中,您可能希望使用 Konfig 来存储应用程序设置,而不需要文件 I/O。您可以通过扩展 AbstractKonfig
类并填充 getDefaults()
方法来实现这一点。
use Exen\Konfig\AbstractKonfig; class MyKonfig extends AbstractKonfig { protected function getDefaults() { return [ 'host' => 'localhost', 'port' => 80, 'servers' => [ 'host1', 'host2', 'host3', ], 'app' => [ 'name' => 'konfig', 'secret' => 'secret', ], ]; } }
支持的配置文件示例
简单、有效的配置文件的示例可以在 这里 找到。
变更日志
请参阅 变更日志 以获取详细信息。
测试
$ phpunit
贡献
请参阅 贡献 以获取详细信息。
致谢
贡献者
许可证
MIT 许可证(MIT)。请参阅 许可证 以获取更多信息。