jzp-coder / json-guard
1.0.3
2021-05-21 13:52 UTC
Requires
- league/json-guard: ^1.0
- league/json-reference: ^1.0
- symfony/config: ^4.0|^5.0
- symfony/dependency-injection: ^4.0|^5.0
- symfony/http-kernel: ^4.0|^5.0
Requires (Dev)
- phpspec/phpspec: ^4.3
This package is not auto-updated.
Last update: 2024-09-21 06:06:00 UTC
README
关于
此包将league/json-guard
与Symfony集成,并为League\JsonGuard\Validator
实例提供轻量级构建器。
安装
composer require jzp-coder/json-guard
配置
目前,该包只需要存储JSON模式的文件夹路径
json_guard: json_schema_root_path: '%kernel.root_dir%/../config/schemas/'
用法
假设已设置json_schema_root_path
,且其中包含一个test.json
模式,您可以使用JSON构建器如下所示
public function test(\JzpCoder\JsonGuard\Builder\JsonValidatorBuilder $builder) { $data = <<<EOF { "eanCode": '123', } EOF; $validator = $builder->setJsonSchema('test') ->setData($data) ->build(); return new Response($validator->passes()); }
还添加了一个新的约束isNumeric
,用于验证值是否为数字。因此,'123'
和123
值将通过,但如果isNumeric
设置为false
,则123
和'123'
值将不会通过。以下是一个JSON模式的简例
{ "properties": { "eanCode": { "type": ["integer", "string"], "isNumeric": true } } }
测试
vendor/bin/phpspec run
待添加的功能
将很快添加缓存模式的选项。
贡献
如果您想贡献,请Fork仓库,并从您的自定义分支向master创建一个pull request。谢谢!