Skip to content

SweetSunnyFlower/yaf_validator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ap框架扩展 --- validator

使用说明

$arrInput = array(
    'id' => '3',
    'name' => 'gaobingbing',
);
//注意:非必传参数,应该先校验参数类型,最后进行参数初始化
$rules = array(
    'id' => 'Required|IsInt|Range:1,2',
    'name' => 'Required|IsString',
    'age' => 'Default:Int', //age 是非必须参数,使用default 初始化,如果需要指定初始化值:'age' => 'Default:int,1';
);
//messages 是可选参数,在rule中一般定义英文提示信息,如需汉语提示,在这里自定义 
$messages = array(
    'id.IsInt' => 'id 必须是整数',
    'name.IsString' => 'name 必须是字符串',
);
$arrInput = Validator_Factory::validate($arrInput, $rules, $messages);
/** 
$arrInput = array(
    'id' => '3',
    'name' => 'gaobingbing',
    'age' => 0, //经过default初始化
 );
**/
//$arrInput是过滤后的入参,可传入service_page使用

其他规则参考如下:

初始化

Default

非必传参数,做初始化

//公司名称非必传,默认使用'',
$rule = array(
    'company' => 'Default:String',
);
//当传递北京度小满金融时,使用北京度小满金融时
$rule = array(
    'company' => 'Default:String,北京度小满金融',
);

条件判断


AfterDate

验证参数值必须在某个日期之后

$rule = array(
    'startTime' => 'AfterDate:2019-01-01 00:00:00',
);

Alpha

验证参数值必须是大写字母 或 小写字母。

$rule = array(
    'cityName' => 'Alpha',
);

AlphaDash

验证参数值必须是 大写字母 、 小写字母、数字、短横 -、下划线 _。

$rule = array(
    'userName' => 'AlphaDash',
);

AlphaNum

验证参数值必须是 大写字母 、 小写字母、数字。

$rule = array(
    'userName' => 'AlphaNum',
);

BeforeDate

验证参数值必须在某个日期之前。

$rule = array(
    'endTime' => 'BeforeDate:2019-01-01',
);

Chs

验证参数值只能是 中文。

$rule = array(
    'paragraph' => 'Chs',
);

ChsAlpha

验证参数值必须是 中文、大写字母 、 小写字母。

$rule = array(
    'paragraph' => 'ChsAlpha',
);

ChsAlphaDash

验证参数值必须是 中文、大写字母 、 小写字母、数字、短横 -、下划线 _。

$rule = array(
    'paragraph' => 'ChsAlphaDash',
);

ChsAlphaNum

验证参数值必须是 中文、大写字母 、 小写字母、数字。

$rule = array(
    'paragraph' => 'ChsAlphaNum',
);

Confirm

验证参数值必须和另外一个字段参数值相同。

$rule = array(
    'column1' => 'Confirm:column2',
);

Different

验证参数值必须和另外一个字段参数值相同。

$rule = array(
    'column1' => 'Different:column2',
);

GreaterThan

验证参数值必须比另外一个字段参数值大,只支持 int 或 float, 字符串会被转化为 float 后进行对比。

$rule = array(
    'column1' => 'GreaterThan:column2',
);

LessThan

验证参数值必须比另外一个字段参数值小,只支持 int 或 float, 字符串会被转化为 float 后进行对比。

$rule = array(
    'column1' => 'LessThan:column2',
);

Date

验证参数值必须是日期格式,支持 字符串时间戳、格式化日期字符串(只支持 Y-m-d H:i:s)、整型时间戳。

$rule = array(
    'startTime' => 'Date',
);

DateRange

验证参数值必须在某个日期范围之内(可以等于临界日期),支持 字符串时间戳、格式化日期字符串(只支持 Y-m-d H:i:s)、整型时间戳。

$rule = array(
    'startTime' => 'DateRange:2019-01-01 00:00:00,2019-01-02 00:00:00',
);

Dns

验证参数值必须是一个具有有效 DNS 记录域名或者ip,使用 checkdnsrr() 函数校验。

$rule = array(
    'dns' => 'Dns',
);

Email

验证参数值格式必须为邮箱。

$rule = array(
    'email' => 'Email',
);

Enum

验证参数值必须在枚举数组里面。

$rule = array(
    'type' => 'Enum:1,2,3',
);

Ip

验证参数值必须是个IP类型。

$rule = array(
    'ip' => 'Ip',
);

Length

验证参数值长度限制。

$rule = array(
    'username' => 'Length:6,16',
);

Low

验证参数值必须是小写字母。

$rule = array(
    'username' => 'Low',
);

Max

最大值验证,必须是整数。

$rule = array(
    'amount' => 'Max:10000',
);

Min

最小值验证,必须是整数。

$rule = array(
    'amount' => 'Min:1',
);

Mobile

手机号验证。

$rule = array(
    'mobile' => 'Mobile',
);

NotEmpty

参数值不能为空验证。

$rule = array(
    'mobile' => 'NotEmpty',
);

NotInEnum

验证参数值必须不在枚举数组中。

$rule = array(
    'type' => 'NotInEnum:1,2,3',
);

NotInRange

验证参数值必须不在范围内。

$rule = array(
    'type' => 'NotInRange:1,9',
);

Pattern

正则表达式验证。

$rule = array(
    'username' => 'Pattern:/^1\d{10}$/',
);

Range

参数值范围验证。

$rule = array(
    'type' => 'Range:1,7',
);

Required

参数必传验证。

$rule = array(
    'name' => 'Required',
);

RequiredIf

参数必传验证。

//当type == 1时,name必传
$rule = array(
    'name' => 'RequiredIf:type,1',
);

Upper

验证参数值必须是大写字母。

$rule = array(
    'name' => 'Upper',
);

Url

验证参数值必须是有效的URL格式,使用 filter_var()函数验证。

$rule = array(
    'url' => 'Url',
);

类型判断

IsArray

验证参数值必须是数组,使用 is_array()函数进行校验。

$rule = array(
    'checkbox' => 'IsArray',
);

IsBool

验证参数值必须是 bool 类型,注意字符串 true false,会验证成bool 类型,其余数据将会使用is_bool()`函数进行验证。

$rule = array(
    'isSelect' => 'IsBool',
);

IsFloat

验证参数值必须是浮点数,使用filter_var()函数进行验证。

$rule = array(
    'amount' => 'IsFloat',
);

IsInt

验证参数值必须是整数,使用filter_var()函数进行验证。

$rule = array(
    'amount' => 'IsInt',
);

IsString

验证参数值必须是字符串,使用is_string()函数进行验证。

$rule = array(
    'amount' => 'IsString',
);

二维数组

 $rules = array(
        'file' => "Required|IsArray|NotEmpty",
        'file.*.activityName' => "Required",
        'file.*.shopName' => "Required",
        'file.*.shopId' => "Required",
        'file.*.productId' => "Required|Enum:DXJ,YMD",
        'file.*.openExchange' => "Required",
        'file.*.activityRatio' => "Required",
        'file.*.activityStartTime' => "Required",
        'file.*.activityEndTime' => "Required",
        'file.*.shareRatio' => "Required",
    );

自定义验证器

常见的业务默认验证器就能解决,但是有些业务默认验证器是没法验证,此时就需要用户根据自己业务需求,定义满足自己业务的验证器。

  • 声明验证器很简单
    • 定一个类实现 Gring_Validator_Contract_RuleInterface 接口
    • 实现 validate 方法,里面可以定义自己的业务验证器逻辑
    • 定义一个与之对应当map,此map继承 Gring_Validator_Mapping_Base,构造函数中获取条件

About

yaf 框架参数校验包

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages