dsheiko/validate

用于测试原始类型和复杂类型与合约的验证库

v1.1.0 2018-02-07 14:47 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:43:10 UTC


README

Latest Stable Version Total Downloads License Build Status

可扩展的验证库,用于测试原始类型和复杂类型(包括键值数组)与合约的验证

安装

作为 composer 依赖项要求

composer require "dsheiko/validate"

亮点

  • 验证器易于扩展
  • 验证前置/后置合约非常简单
  • 验证器断言直接可访问
  • 嵌套数组的验证

用法

示例

通过合约设计

<?php
use \Dsheiko\Validate;

function login($email, $password)
{
    Validate::contract([
      "email" => [ $email, "IsEmailAddress" ],
      "password" => [ $password, [ "IsString"=> [ "minLength" => 6, "maxLength" => 32, "notEmpty" => true ] ] ],
    ]);
    // do login
}

可能抛出

  • Dsheiko\Validate\IsString\Exception
  • Dsheiko\Validate\IsString\minLength\Exception
  • Dsheiko\Validate\IsString\maxLength\Exception
  • Dsheiko\Validate\IsEmail\Exception

带有如下消息

  • 参数 "email" 验证失败: "jon#snow.i.." 不是一个有效的电子邮件地址
  • 参数 "password" 验证失败: "123" 太短;必须超过6个字符

映射验证

<?php

$params = [
  "email" => "jon#snow.io",
  "password" => "******",
];

Validate::map($params, [
    "email" => ["mandatory", "IsEmailAddress"],
    "password" => ["mandatory", "IsString" => ["minLength" => 6, "maxLength" => 128]],
    "rememberMe" => ["optional", "IsBool" ],
]);

异常消息看起来像

  • 属性 "email" 验证失败: "jon#snow.i.." 不是一个有效的电子邮件地址