monomelodies/kingconf

以任何合理的格式加载配置

1.1.5 2019-06-06 13:16 UTC

This package is auto-updated.

Last update: 2024-09-07 00:57:55 UTC


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