sys-topia / opis-json-schema-ext
Opis JSON Schema 扩展
v0.5.2
2024-07-11 09:25 UTC
Requires
- php: ^7.4 || ^8
- beberlei/assert: ^3 || ^4
- opis/json-schema: ^2.3
Requires (Dev)
- symfony/expression-language: ^5 || ^6
Suggests
- ext-intl: For error translation
- symfony/expression-language: To use Symfony ExpressionLanguage Component for calculations and evaluations
README
这是 Opis JSON Schema 的一个扩展。
关键词
以下提供了以下附加关键词
$calculate
evaluate
maxDate
minDate
noIntersect
数组不能包含交叉的区间。$order
排序数组。 (只有当数组没有违规时才执行)precision
$tag
标记数据在验证后可以从数据容器中检索。$validations
有关如何使用它们的详细信息,请参阅测试。
SystopiaValidator
已经提供了这些关键词。要在不同的验证器类中使用它们,您可能希望使用 SystopiaSchemaParser
或 SystopiaVocabulary
。
空数组到对象的转换
如果将选项 convertEmptyArrays
设置为 true
(默认禁用),则当模式类型包含 object
但不包含 array
时,空数组将被转换为对象。如果要验证的数据已经解码,则可能需要这样做。
翻译
此扩展允许翻译 ValidationError
首先创建一个 TranslatorInterface
的实例
$translator = new Translator($locale, $messages);
如果 messages
目录中有本地化,则可以使用
$translator = TranslatorFactory::createTranslator($locale);
然后创建一个 ErrorTranslator
的实例
$errorTranslator = new ErrorTranslator($translator);
让 ErrorTranslator
翻译验证错误
echo $errorTranslator->trans($error);