tomwright/validator

此包的最新版本(1.0.9)没有可用的许可证信息。

快速简便的验证库。

此包的官方仓库似乎已不存在,因此该包已被冻结。

1.0.9 2017-02-07 11:01 UTC

This package is not auto-updated.

Last update: 2019-04-19 15:46:52 UTC


README

Build Status Total Downloads Latest Stable Version Latest Unstable Version License

一个简单的验证库,用于节省大量的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() - 确保变量是一个 布尔 类型并且是 true
  • isFalse() - 确保变量是一个 布尔 类型并且是 false
  • isEmail() - 确保变量是一个有效的电子邮件地址
  • isUrl() - 确保变量是一个有效的 URL
  • isInt($minValue = null, $maxValue = null) - 确保变量是一个 整数 并且在 $minValue$maxValue 之间
  • isFloat($minValue = null, $maxValue = null) - 确保变量是一个 浮点数 并且在 $minValue$maxValue 之间
  • isNumeric($minValue = null, $maxValue = null) - 确保变量是 数字 并且在 $minValue$maxValue 之间
  • notNull() - 确保变量不是 NULL
  • isNull() - 确保变量是 NULL
  • isObject($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() 将有效地表示 "我已经完成了这个约束组的操作。为我创建一个新的约束组。"