dsheiko / validate
用于测试原始类型和复杂类型与合约的验证库
v1.1.0
2018-02-07 14:47 UTC
Requires
- php: >=7.0.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-23 07:43:10 UTC
README
可扩展的验证库,用于测试原始类型和复杂类型(包括键值数组)与合约的验证
安装
作为 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.." 不是一个有效的电子邮件地址