tomwright / validator
快速简便的验证库。
此包的官方仓库似乎已不存在,因此该包已被冻结。
Requires
README
一个简单的验证库,用于节省大量的if...else代码块。
快速使用
以下是一个检查用户是否为18岁的快速示例。
$userOver18 = ValidatorTranslator::create('User Age', 17)
->isInt(18)
->validate()
->hasPassed();
if (! $userOver18) {
echo 'User is not over 18.';
}
有关完整列表的 Constraints,请参阅以下内容。
约束
每个 Constraint 都有一个静态的 create() 方法可供使用,您可以使用它来创建该 Constraint 的新实例。然后您可以调用它上的可用过滤器。
ArrayConstraint
用于确定变量是否为数组。
BoolConstraint
用于确定变量是否为布尔值。
过滤器
requiresTrue()requiresFalse()
EmailConstraint
用于确定变量是否为有效的电子邮件地址。
FloatConstraint
用于确定变量是否为浮点数。
过滤器
setMinValue()setMaxValue()
IntConstraint
用于确定变量是否为整数。
过滤器
setMinValue()setMaxValue()
NotNullConstraint
用于确定变量是否为非空(NOT null)。
NullConstraint
用于确定变量是否为空(null)。
NumericConstraint
用于确定变量是否为数字。
过滤器
setMinValue()setMaxValue()
ObjectConstraint
用于确定变量是否为对象。
过滤器
setRequiredClass- 用于指定需要通过的类。
StringConstraint
用于确定变量是否为字符串。
过滤器
setMinLength设置最大长度
约束分组
约束分组 允许您使用一组 约束 来验证一个变量。为了使 约束分组 通过,它所有的 约束 都必须通过。
要向 约束分组 添加 约束,您可以使用 $constraintGroup->addConstraint($constraint));。
尽管如此,在创建 约束分组 的时候还有另一种添加 约束 的方法...
$constraintGroup = ConstraintGroup::create([
StringConstraint::create()->setMinLength(5),
EmailConstraint::create(),
]);
约束分组翻译器
创建所有这些 约束分组 需要很多输入,因此创建了 约束分组翻译器 以帮助完成这一任务。
以下代码与上面的代码完全相同,并且由于 约束分组翻译器 继承了 约束分组,所以可以使用相同的方式进行使用。
$constraintGroup = ConstraintGroupTranslater::create()->isString(5)->isEmail();
可用方法
isArray()- 确保变量是一个数组isBool($requiredValue = null)- 确保变量是一个布尔类型isTrue()- 确保变量是一个布尔类型并且是trueisFalse()- 确保变量是一个布尔类型并且是falseisEmail()- 确保变量是一个有效的电子邮件地址isUrl()- 确保变量是一个有效的 URLisInt($minValue = null, $maxValue = null)- 确保变量是一个整数并且在$minValue和$maxValue之间isFloat($minValue = null, $maxValue = null)- 确保变量是一个浮点数并且在$minValue和$maxValue之间isNumeric($minValue = null, $maxValue = null)- 确保变量是数字并且在$minValue和$maxValue之间notNull()- 确保变量不是NULLisNull()- 确保变量是NULLisObject($requiredClass = null)- 确保变量是类型为$requiredClass的对象isString($minLength = null, $maxLength = null)- 确保变量是一个长度在$minLength和$maxLength之间的字符串
验证器
验证器 由 1 个或多个 约束分组 组成。为了使 验证器 通过,至少需要有一个 约束分组 通过。
您应按上述方式创建您的 约束分组,然后按照以下步骤将它们添加到 验证器 中。
$validator = Validator::create($validatorName, $valueToValidate, $throwExceptionsOnFailure = false)
->addConstraintGroup($constraintGroup);
当所有 约束分组 设置完毕后,只需在 验证器 上调用 validate()。
可用方法
validate()- 处理验证getRequirements()- 返回由约束分组定义的要求的数组getRequirementsString()- 返回由约束分组定义的要求的字符串addConstraintGroup()- 将约束分组添加到验证器hasPassed()- 返回验证是否通过hasFailed()- 返回验证是否失败
验证器翻译器
为了进一步简化,您还有 验证器翻译器。
$valid = ValidatorTranslator::create('age', 23)
->inList([1, 2, 3])
->alt()
->inList([21, 22, 23])
->validate()
->hasPassed();
这将产生与执行以下操作相同的结果:
$groupOne = ConstraintGroupTranslator::create()
->inList([1, 2, 3]);
$groupTwo = ConstraintGroupTranslator::create()
->inList([21, 22, 23]);
$valid = Validator::create('age', 23)
->addConstraintGroup($groupOne)
->addConstraintGroup($groupTwo)
->validate()
->hasPassed();
在这里可用的方法通常与使用 ConstraintGroupTranslator 时相同。
使用 alt() 或 alternatively() 将有效地表示 "我已经完成了这个约束组的操作。为我创建一个新的约束组。"。