mmagyar / typage-php
使用类型类轻松验证数据
0.3.4
2016-02-01 21:22 UTC
Requires
- php: >=5.4
This package is not auto-updated.
Last update: 2024-09-14 19:14:39 UTC
README
使用类型类轻松验证数据
使用单个定义,您可以验证数据,无论是输入、输出还是测试。
使用相同的定义,您可以生成有效的、可读的json格式的描述。它已经在路线图上,可以将这些json转换回类型检查实例。
如果在检查过程中失败,您将收到一个异常,其中包含有关错误发生位置和错误的详细信息。
示例
值名称:request:myArray[1],数据:"hallo asdf",不符合正则表达式:/^\w+$/u
或
值名称:request:myNumber 的值为 55,大于最大值:34.234
您可以通过扩展 AbstractAny 类或使用带有验证闭包的 Any 类轻松添加自己的类型。
查看测试文件夹中的使用示例,并对其进行操作以了解其工作原理。
如何使用它的简单示例
$validator = new Object( "myNumber0to10" => new Integer(0, 10), "myStringArray" => new ArrayList(new Text()), "singleWord" => new Text("/^\w+$/u"), "optionalNumber" => new Nullable(new Double()), "optionalWithDefault" => new Either(new Text(), "Hello World") ); $validatedData = $validator->check($input, "request");
为什么选择这个而不是 JSON schema?
除了 JSON schema 提供的所有功能外,此库还提供以下功能:
- 默认情况下,所有属性都是必需的。
- 错误处理默认自动通过异常完成,无需检查结果是否有错误。
- 默认情况下不处理 Null 作为有意义的数据,必须显式声明属性为可空。
- 易于扩展*。
- 声明类型注解更安全、更简单,您始终知道从构造函数签名中可能的属性。
- 它与同一语言相同,不一定需要单独的文件。
- 您可以在应用程序中传递验证器,无需担心,因为它们是常规不可变的 PHP 对象。
- 我们可以从定义生成 JSON schema** ;)
* 您可以直接获取 Any 类并编写验证函数,因为在某些情况下,您必须针对数据库进行验证。您可以轻松扩展 AbstractAny 类以创建自己的类型。
**语法略有不同