sauls / options-resolver
支持多维数组的多维数组解析的Symfony选项解析器
v1.0.2
2020-08-20 18:14 UTC
Requires
- php: >=7.4
- sauls/collections: ^1.0
- symfony/options-resolver: ^4.0 || ^5.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-21 03:08:21 UTC
README
支持多维数组的多维数组解析的 Symfony OptionsResolver
需求
PHP >= 7.2
安装
使用composer
$ composer require sauls/options-resolver
手动添加composer.json文件
{
"require": {
"sauls/options-resolver": "^1.0"
}
}
使用
标准用法可以在 Symfony OptionsResolver官方文档 中找到。
通过使用点表示法数组索引添加关联数组支持。
定义选项
要定义关联选项,请使用点表示法数组索引。
$resolver->setDefined['nested.name', 'nested.value', 'nested.deep.type'];
添加允许的类型
使用点表示法索引添加允许的类型。
$resolver->addAllowedType('nested.name', ['string']); $resolver->addAllowedType('nested.value', ['int']);
添加允许的值
使用点表示法索引添加允许的值。
$resolver->addAllowedValues('nested.deep.type', ['one', 'two', 'three']);
默认选项值
默认选项可以作为点表示法索引或关联数组添加。
$resolver->setDefaults( [ 'nested.name' => 'Hello world!', 'nested.value' => 100, 'nested.deep.type' => 'one', ] ); // Or $resolver->setDefaults( [ 'nested' => [ 'name' => 'Hello world!', 'value' => 100, 'deep' => [ 'type' => 'one', ], ], ] );
解析选项
传递给解析选项的数组可以包含点表示法索引或关联数组。
$resolver->resolve( [ 'nested.name' => 'Resolve me!', 'nested.value' => 500, 'nested.deep.type' => 'two', ] ); // Or $resolver->resolve( [ 'nested' => [ 'name' => 'Resolve me!', 'value' => 500, 'deep' => [ 'type' => 'two', ], ] ] );
异常
所有异常将返回有关您的点表示法关联选项的错误信息。例如
选项 "nested.deep.type" 的值为 "four",是无效的。接受的值是:"one","two","three"。
期望选项 "nested.value" 为类型 "int",但实际为类型 "string"。
缺少必需的选项 "nested.value"。
选项 "nested.deep.nmae" 不存在。定义的选项有:"nested.deep.name","nested.name","nested.type","nested.value","text","type"。