monomelodies / kingconf
以任何合理的格式加载配置
1.1.5
2019-06-06 13:16 UTC
Requires
- php: >=7.2
- symfony/yaml: ^4.3.0
Requires (Dev)
- phpunit/phpunit: >=4
README
以任何合理的格式加载配置
有些人喜欢JSON,有些人喜欢YAML。有些人甚至更喜欢XML...为什么不允许所有这些,让用户自己决定呢?
Kingconf
可以加载以下任何一种格式的配置
json
:一个键/值存储的JSON。yaml
:一个Yaml文件。xml
:一个XML文件。它应该包含一个根元素,可以命名为任何名称。ini
:PHP的.ini格式。php
:纯PHP(return ['key' => 'value']
格式)。
安装
Composer(推荐)
$ cd /path/to/project
$ composer require monomelodies/kingconf
手动
- 将存储库下载到某个地方或克隆存储库;
- 将
/path/to/kingconf/src
添加到您的自动加载器中,用于PSR-4命名空间Monomelodies\\Kingconf\\
。
使用方法
使用一个或多个配置文件路径作为构造函数参数创建一个Monomelodies\Kingconf\Config
对象
<?php use Monomelodies\Kingconf\Config; $config = new Config('/path/to/json', '/path/to/ini');
注意,找到的第一个值是优先的,即如果在上面的示例中,JSON定义了foo = bar
和inifoo = baz
,则foo
将保持为bar
。
生成的$config
对象简单地扩展了PHP的ArrayObject
,因此您可以像访问任何其他数组一样访问它
<?php echo $config['foo']; // (string)"bar"
错误和异常
如果配置文件无法读取、包含无效语法等,Kingconf将抛出异常。因此,如果您无法确保内容(例如,用户提交的数据),请确保将构造函数包裹在try/catch块中
<?php use Monomelodies\Kingconf\Config; use Monomelodies\Kingconf\Exception; try { $config = new Config($some_file_we_dont_trust); } catch (Exception $e) { echo "Config invalid!!!1"; }
请注意,用户提交的配置可能最好以不同的方式处理...
所有Kingconf异常都扩展自
Monomelodies\Kingconf\Exception
,该异常反过来又扩展自DomainException
。