ergebnis / json-schema-validator
提供了一个基于justinrainbow/json-schema的JSON模式验证器。
4.2.0
2024-01-29 16:50 UTC
Requires
- php: ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- ext-json: *
- ergebnis/json: ^1.2.0
- ergebnis/json-pointer: ^3.4.0
- justinrainbow/json-schema: ^5.2.12
Requires (Dev)
- ergebnis/data-provider: ^3.2.0
- ergebnis/license: ^2.4.0
- ergebnis/php-cs-fixer-config: ^6.20.0
- ergebnis/phpunit-slow-test-detector: ^2.9.0
- fakerphp/faker: ^1.23.1
- infection/infection: ~0.26.6
- phpunit/phpunit: ^9.6.16
- psalm/plugin-phpunit: ~0.18.4
- rector/rector: ~0.19.2
- vimeo/psalm: ^5.20.0
README
本项目提供了一个基于composer
的JSON模式验证器包,它基于justinrainbow/json-schema
。
安装
运行
composer require ergebnis/json-schema-validator
用法
如果你之前使用过来自justinrainbow/json-schema
的验证器,你可能已经注意到它存在一些缺陷
- 验证器是状态性的。
- 验证器在验证之前需要解码JSON字符串。
- 验证器返回一个包含错误信息的
array
,其中每个错误也是一个array
。
本包将验证委托给justinrainbow/json-schema
,并提供一个更友好的接口。
<?php declare(strict_types=1); use Ergebnis\Json\Json; use Ergebnis\Json\Pointer; use Ergebnis\Json\SchemaValidator; $json = Json::fromFile('composer.json'); $schema = Json::fromString(file_get_contents('https://getcomposer.org.cn/schema.json')); $jsonPointer = Pointer\JsonPointer::document(); $schemaValidator = new SchemaValidator\SchemaValidator(); $result = $schemaValidator->validate( $json, $schema, $jsonPointer ); var_dump($result->isValid()); // bool var_dump($result->errors()); // flat list of `ValidationError` value objects
更新日志
本项目维护者记录了本项目的重要更改,详情请见更新日志。
贡献
本项目维护者建议遵循贡献指南。
行为准则
本项目维护者要求贡献者遵守行为准则。
一般支持策略
本项目维护者提供有限的支持。
您可以通过赞助 @localheinz 或请求与本项目的相关服务的发票来支持本项目的维护。
PHP版本支持策略
本项目支持拥有活跃和安全支持的PHP版本。
本项目维护者在PHP版本最初发布时添加对该版本的支持,并在安全支持结束时停止对该版本的支持。
安全策略
本项目有一个安全策略。
许可证
本项目使用MIT许可证。
社交
关注Twitter上的@localheinz 和@ergebnis。