bugadani / validatiny
一个简单的对象验证库
dev-master
2016-05-06 08:45 UTC
Requires
- php: >=5.5
- bugadani/annotiny: dev-master
This package is not auto-updated.
Last update: 2024-09-14 17:48:26 UTC
README
Validatiny
Validatiny 是一个简单的 PHP 库,用于验证对象是否满足一组规则。
Validatiny 采用 MIT 许可。
规则
Validatiny 使用 Validatiny\Rule 的子类来验证对象。当前子类有:
- All - 验证是否所有规则都适用
- Boolean - 只接受 true 或 false
- Callable - 接受可调用值
- Callback - 调用函数或静态方法来验证值。
- CollectionOf - 验证元素集合是否满足单个规则(例如验证是否是一个数字数组)
- Enum - 验证是否满足值列表
- Not - 取反内部验证器的结果
- Number - 验证数值,可选的范围参数
- Object - 检查对象类型,可选地验证对象本身
- Optional - 接受 null 或使用内部规则验证
- Pattern - 验证正则表达式模式
- String - 验证字符串,可选的长度参数
- Structure - 验证给定对象或数组是否有指定字段。此规则有一个 'strict' 选项,要求验证的数组或对象只能有指定的字段。
- Union - 验证是否至少满足规则列表中的一个规则,对于集合或可选规则非常有用
- 更多即将到来...
Validatiny 可以将规则应用于公共属性和getter方法。可以设置任意数量的规则,只有当所有规则都有效时,属性和/或方法才被认为是有效的。一个对象被认为是有效的,如果其所有属性和方法都是有效的。
以下规则也可以应用于对象
- All
- Callback
- Not
- Optional
- Union
注意:可以使用 Callback 规则将通用的验证规则作为 PHP 代码应用在验证的类上。
验证场景
规则可以添加到特定的验证场景。这使用户能够在单个对象上指定多组规则。
要指定规则属于哪个场景,请在规则注解中使用 scenario: 'scenarioName'
属性,或调用 $rule->setScenario()
。这两者都接受单个名称或场景名称数组。
默认情况下,Validatiny 在对象上验证所有规则。要覆盖此行为,请将验证场景的名称作为 Validator::validate
的第二个参数传递。
待续...