microlib / config
一个小型的PHP配置库,主要包含函数。
0.1.1
2014-09-18 18:44 UTC
Requires
- php: >=5.4.0
Suggests
- symfony/yaml: For reading YAML configs.
This package is auto-updated.
Last update: 2024-09-20 09:57:09 UTC
README
一个小型的PHP配置库,主要包含函数。是的,是函数,因为操作配置数组应该简单且快速。
特性
- 小型库。无冗余。易于使用的函数。
- 支持PHP数组、JSON、INI、YAML和XML配置文件格式。
- 易于应用默认值、强制要求设置和过滤多余数据。
- 可以指定一个模式以递归验证数据。使用可调用来进行验证和转换。
- 易于从嵌套配置结构中获取值。
使用方法
针对模式进行验证
假设你有一个如下所示的配置文件
{ "first_name": "Jeremy ", "last_name": "Lindblom", "phone": {"number": "5559997777"}, "gender": "whocares" }
在你的PHP脚本中...
包含Config库。
require '/path/to/vendor/autoload.php'; use MicroLib\Config as cfg;
加载配置文件。
$config = cfg\load('config.json');
定义数据模式。使用schema
函数是可选的,但有助于验证模式是否正确定义。(注意:模式可以放在单独的文件中,并使用load
函数与其他配置数据一起加载。)
$schema = cfg\schema([ 'first_name' => [ 'required' => true, 'transform' => 'trim', 'validate' => 'ctype_alpha' ], 'last_name' => [ 'required' => true, 'transform' => 'trim', 'validate' => 'ctype_alpha' ], 'phone' => [ 'schema' => [ 'type' => [ 'default' => 'mobile', 'transform' => 'trim', 'validate' => 'ctype_alpha', ], 'number' => [ 'required' => true, 'validate' => 'ctype_digit', ] ] ], ]);
使用模式验证配置数据。如果没有抛出异常,则数据有效。
$config = cfg\validate($config, $schema);
使用get
从配置中获取数据。
echo cfg\get($config, 'phone.number'); #> 5559997777 echo cfg\get($config, 'phone.type'); #> mobile
简单检查所需键
如果你不需要模式的功能,仍然有简单的方法来强制要求设置和应用默认值。
假设你有一个以下配置数据的数组
$config = [ 'class' => 'rogue', 'race' => 'half-elf', 'level' => 5, 'weapon' => 'short sword', ];
如果你不关心所有项目,你可以使用keep
函数创建一个只包含你想要的项目的新数组。
$config = cfg\keep($config, ['class', 'race', 'level']);
然后,使用create
函数,你可以检查要求并应用默认值。
$config = cfg\create( $config, ['class', 'race', 'level'], ['status' => 'normal'] ); print_r($config); #> Array #> ( #> [class] => rogue #> [race] => half-elf #> [level] => 5 #> [status] => normal #> )