Download the PHP package webgeeker/validation without Composer

On this page you can find all versions of the php package webgeeker/validation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package validation

WebGeeker-Validation: 一个强大的 PHP 参数验证器

用于对API接口的请求参数进行合法性检查。

在实现服务端的API接口时,对于每一个接口的每一个参数,都应该检测其取值是否合法,以免错误的数据输入到系统中。这个工作可以说是费时费力,但又不得不做。而且PHP本身是弱类型语言,不但要验证取值,还要验证数据的类型是否符合,这就更复杂了。

本工具就是针对这个工作而设计的,能够有效地减少编码量,代码可读性好。

看看下面这段代码,可以对用法有个大概印象,应该不难看懂:

支持多种数据类型的校验:整型、浮点型、bool型、字符串、数组、对象、文件、日期时间,能够验证嵌套的数据结构中的参数,还支持带条件判断的验证。

1 简介

1.1 为什么要写这样一个工具?

我在使用Laravel框架的时候,Laravel提供了一个参数验证工具,不过用起来不怎么顺畅:

为了解决这些问题,所以才写了这么一个工具。

1.2 特点

  1. 每个功能特性都有单元测试(共有 44 tests, 700+ assertions)
  2. 支持无限嵌套的数据结构的验证(参考 1.3 节的例子)
  3. 支持条件验证,根据参数取值不同,应用不同的验证规则(参考 1.3 节的例子)
  4. 支持正则表达式验证
  5. 简洁,验证逻辑一目了然
  6. 轻量,不需要定义和维护各种验证classes
  7. 验证器语义明确,没有“一词多义”的问题
  8. 易学易记。比如整型验证器都是以"Int"开头,浮点型验证器都是以"Float"开头,等等。唯一不符合这一规则的是字符串型验证器,它们一部分以"Str"开头的,但也有一部分不以"Str"开头,比如Regexp, Ip, Email, Url等。
  9. 不绑定任何一个框架,无任何依赖。你可以在任何一个框架中使用这个工具,就算你不使用框架,也可以使用本工具。
  10. 支持自定义验证器,可以实现各种自定义验证功能

1.3 一个简单示例

下面这个示例展示了一个查询获取用户投诉列表的Request参数的验证(注意其中的条件验证和针对嵌套数据结构的验证):

2 安装

通过Composer安装

3 快速上手

3.1 一个完整的示例(不使用任何框架)

这个例子直接验证$_POST(POST表单)中的参数,展示了最基本的用法

注意:验证不通过会抛出异常,该异常中包含有错误描述信息

3.2 验证不通过的错误处理

如果验证不通过,Validation::validate(...)方法会抛出异常,建议在框架层面统一捕获这些异常,提取错误描述信息并返回给客户端。

3.3 在第三方框架中的用法

第三方框架一般会提供Request对象,可以取到GET, POST参数(以Laravel为例)

4 详细使用方法

4.1 验证整型参数

整型验证器全部以"Int"开头,用于验证整型数值(如123)或整型字符串(如"123")。其它数据类型均不匹配。

这条验证要求参数"size"是整数,并且大于等于1,小于等于100。

完整的整型验证器的列表参考附录 A.1 。

4.2 验证浮点型参数

浮点型验证器全部以"Float"开头,用于验证浮点型数值(如1.0)、浮点型字符串(如"1.0")、整型数值(如123)或整型字符串(如"123")。其它数据类型均不匹配。

这条验证要求参数"height"是浮点数,并且大于等于0,小于等于100.0。

完整的浮点型验证器的列表参考附录 A.2 。

4.3 验证bool型参数

bool型验证器:

完整的bool型验证器的列表参考附录 A.3 。

4.4 验证字符串型参数

字符串型验证器不全以"Str"开头。只接收字符串型数据,其它数据类型均不匹配。

例1:

这条验证要求参数"name"是字符串,长度在2-20之间(字符串长度是用mb_strlen()来计算的)。

例2:

这条验证要求参数"comment"是字符串,字节长度不超过1048576(字节长度是用strlen()来计算的)。

例3:

这条验证要求参数"email"是必须是合法的电子邮件地址。

例4(正则表达式验证):

这条验证要求参数"phone"是合法的手机号。

关于正则表达式中的哪些特殊字符需要转义的问题,只需要用 preg_match() 函数验证好,如:

然后把两个'/'号及其中间的部分拷贝出来,放在Regexp:后面即可,不需要再做额外的转义,即使正则中有'|'这种特殊符号,也不需要再转义。

关于正则匹配中文的问题 用户 preq_match() 匹配中文的代码如下:

注意正则表达式结尾需要加一个'u',意思是开启UTF8模式。

用我们的验证库代码应该这样写:

注意正则表达式结尾不需要加'u'。

完整的字符串型验证器的列表参考附录 A.4 。

4.5 验证数组型、对象型、文件型、日期时间型参数

参考附录A.5-A.8

4.6 验证器串联(与)

一条规则中可以有多个验证器前后串联,它们之间是“AND”的关系,如:

这个验证要求参数"file"是一个图像文件,并且文件大小不超过10m

4.7 Required 验证器

例:

该验证要求参数"size"必须是字符串的"small", "middle"或者"large"。

4.8 忽略所有 Required 验证器

比如当创建一个用户时,要求姓名、性别、年龄全部都要提供;但是当更新用户信息时,不需要提供全部信息,提供哪个信息就更新哪个信息。

注意上面代码的最后一行:validate()函数的第三个参数为true表示忽略所有的 Required 验证器。

这样我们就只需要写一份验证规则,就可以同时用于创建用户和更新用户信息这两个接口。

4.9 嵌套参数的验证

下面这个例子展示了包含数组和对象的嵌套的参数的验证:

4.10 条件判断型验证器

条件判断型验证器都以"If"开头。

如果条件不满足,则条件验证器后面的规则都不检测,忽略当前这条验证规则。

比如你想招聘一批模特,男的要求180以上,女的要求170以上,验证可以这样写:

参数"sex"的值不同,参数"height"的验证规则也不一样。

除了IfExistIfNotExist,其它的条件验证器 IfXxx 都要求条件参数必须存在。如果希望条件参数是可选的,那么可以结合IfExistIfNotExist一起使用, 如:

注意:
设计条件验证器的主要目的是根据一个参数的取值不同,对另外一个参数应用不同的验证规则。
"IfXxx:"的后面应该是另一个参数的名称,而不是当前参数,这一点一定要注意。
比如上面的例子中,是根据参数"sex"的取值不同,对参数"height"应用了不同的验证规则,"IfXxx:"后面跟的是"sex"。

完整的条件判断型验证器的列表参考附录 A.9 。

4.11 验证规则并联(或)

多条验证规则可以并联,它们之间是“或”的关系,如

上面这条验证要求参数"type"既可以是字符串"small", "middle"或"large",也可以整型的1, 2或3

验证规则并联不是简单的“或”的关系,具体验证流程如下:

  1. 按顺序验证这些规则,如果有一条验证规则通过, 则该参数验证通过。
  2. 如果全部验证规则都被忽略(If验证器条件不满足,或者没有Required验证器并且该参数不存在,或者有0条验证规则),也算参数验证通过。
  3. 上面两条都不满足, 则该参数验证失败。

这些规则如果要完全理清并不是一件容易的事,所以不建议使用验证规则并联,也尽量不要设计需要这种验证方式的参数。

4.12 关于特殊值null, ""0false的问题

这些特殊的值是不等价的,它们是不同的数据类型(需要用不同的验证器去验证):

如果某个参数的值为null,则本工具会视为该参数不存在。

比如下面两个array对于本工具来说是等价的.

是等价的。

4.13 关于基本数据类型与字符串的关系

对于以下url地址

我们将得到的参数数组:

注意

本工具的所有验证器都是强类型的,"Int"验证的是整型,"Float"验证的是浮点型,"Str*"验证的是字符串型,数据类型不匹配,验证是通不过的。但是字符串类型是个例外。

因为常规的HTTP请求,所有的基本数据类型最终都会转换成字符串,所以:

4.14 自定义错误信息输出文本

如果参数验证不通过,Validation::validate()方法会抛出异常,这个异常会包含验证不通过的错误信息描述的文本。

但是这个描述文本对用户来说可能不那么友好,我们可以通过两个伪验证器来自定义这些文本:

看下面的例子:

参考附录A.10获取更详细的信息

4.15 国际化

从0.4版开始:

要支持国际化,需要自定义一个类,继承\WebGeeker\Validation\Validation,重载两个静态成员变量:

下面提供一个示例类:

注意:

使用这个MyValidation类来进行验证,就可以实现文本的翻译了。

如果提供了错误的语言代码,或者没有找到翻译的文本,那么就不翻译,输出原始的文本。

4.16 国际化(0.4版之前)

(如果你使用的是0.4及之后的版本,建议使用新的国际化方案(参考上一节),更简洁一点)

要支持国际化,需要自定义一个类,继承\WebGeeker\Validation\Validation,重载两个静态成员变量:

下面提供一个示例类:

注意:

使用这个MyValidation类来进行验证,就可以实现文本的翻译了。

如果提供了错误的语言代码,或者没有找到翻译的文本,那么就不翻译,输出原始的文本。

4.17 自定义验证器

这里先强调一下,不要滥用自定义验证器功能。跟业务相关强相关的一些验证,如果用的地方很少,可以考虑直接用PHP代码来验证,或者封装成PHP函数直接调用,不一定非要纳入到 webgeeker-validation 验证体系中。

4.17.1 一个简单的自定义验证器示例

下面例子中定义了一个类CustomCaseValidation,类中提供一个方法validateCustomStartWith()和一个错误提示信息模版$errorTemplates,就实现了自定义验证器CustomStartWith
(不要被代码行数吓到了,实际没多少代码,有一半是注释)

用法如下:

4.17.2 如何实现自定义验证器

  1. 自定义验证器必须以 Custom 开头,比如"CustomAbc"、"CustomXyz"
  2. 定义一个类,继承 \WebGeeker\Validation\Validation
  3. 在该类中提供"自定义验证器的实现方法",有几个验证器,就提供几个实现方法。
  4. 类中的错误提示信息模版$errorTemplates是可选的,因为你可以在实现方法中直接生成错误提示信息的文本(但是这样就不支持国际化功能了)。

4.17.3 自定义验证器的实现方法的具体要求

  1. 方法必须以"validate"开头,后面加上验证器名称。比如"validateCustomStartWith"。
  2. 如果自定义验证器没有参数,其实现方法的格式为:

    方法有 3 个参数:

    • $value 待验证的值
    • $reason 验证失败的错误提示字符串。它的值就是伪验证器 >>> 提供的字符串
    • $alias 参数别名,用于错误提示。它的值等于伪验证器 Alias 提供的字符串
  3. 如果自定义验证器有 n 个参数,那么它的验证方法应该有 3 + n 个参数,
    多出来的 n 个参数应该放在参数 $value 的后面。
    带1个参数的验证器示例:"CustomStartWith:head"
    带多个参数的验证器示例:"CustomStrIn:started,success,failed",多个参数用逗号分隔
  4. 如果验证通过,方法的返回值应该是参数 $value 的原始值
  5. 如果验证失败,应该抛出异常

下面再提供一个示例类CustomDemoValidation,实现了三个自定义验证器CustomIntCustomIntEqCustomIntGeLe

注意:上面的 CustomDemoValidation 类继承的是另一个自定义验证器类 CustomCaseValidation

你可以通过连续继承的方式把多个自定义验证器类的功能合并,详情可参考 4.17.6 小节

4.17.4 自定义验证器的参数解析方法

如果是带参数的验证器,比如"CustomFloatGtLt:1.0,10",验证器的参数"1.0,10"会用默认的参数解析方法处理:

默认的参数解析方法的有如下缺点:

解决以上问题的方法就是提供自定义验证器的参数解析方法(以"CustomFloatGtLt"为例):

下面给出第三个示例类 CustomExampleValidation
注意其中的参数解析方法 parseParamsOfCustomFloatGtLt()
另一个要注意的是$langCode2ErrorTemplates,它是“错误提示信息模版” $errorTemplates 的翻译对照表(参考4.15 国际化)

4.17.5 参数个数可变的自定义验证器

所谓参数个数可变,就是自定义验证器可以带任意数量的参数(但不能不带参数)。

比如"CustomStrIn",既可以带两个参数"CustomStrIn:started,finished,也可以带3个参数如"CustomStrIn:started,success,failed"

具体实现方法参考下面的第四的示例类 CustomSampleValidation
注意其中的参数解析方法 parseParamsOfCustomStrIn(),它返回的是一个数组的数组,这是实现可变参数的关键。
另一个要注意的是$langCodeToTranslations(实际上它不应该出现在这个例子中),它是文本翻译对照表,用来翻译伪验证器 Alias>>> 提供的文本(参考4.15 国际化)。

4.17.6 合并多个自定义验证器类

可以通过连续继承的方式把多个自定义验证器类的功能合并,比如可以按下面的关系来继承:

这样当你调用MyValidation::validate()时,就可以使用上面四个类中定义的所有的验证器或自定义验证器。

不建议继承层次太多

在运行时,继承链上的所有类的错误提示信息模版 $errorTemplates 会被合并成一个总的模版。如果出现重复的键,总是子类的值覆盖父类的值。

如果某些自定义验证器不是全局通用的,而是某个模块专用的。可以写一个这个模块专用的验证器类,如ModuleXValidation, ModuleYValidation,按如下方式继承:

这里再强调一下,不要滥用自定义验证器功能。跟业务相关强相关的一些验证,如果用的地方很少,可以考虑直接用PHP代码来验证,或者封装成PHP函数直接调用,不一定非要纳入到 webgeeker-validation 验证体系中。

4.17.7 自定义验证器的国际化

自定义验证器的国际化的方法与内置验证器是一样,可参考 4.15 小节。

上一小节提到了自定义验证器类的连续继承,继承链上的所有翻译表 $langCode2ErrorTemplates$langCodeToTranslations 在运行时,都会被(递归)合并成一张表。

所以我们有多种放置翻译表的方案:

  1. 提供一个类比如 MyValidation,专门用于国际化,所有的翻译表都放在这个类中,正如 4.15 小节所介绍的那样;
  2. 把翻译表分散放到继承链上的多个类中。
  3. 同时使用上面两种方案;

A 附录 - 验证器列表

A.1 整型

整型验证器全部以"Int"开头。

整型验证器 示例 说明
Int Int “{{param}}”必须是整数
IntEq IntEq:100 “{{param}}”必须等于 {{value}}
IntNe IntNe:100 “{{param}}”不能等于 {{value}}
IntGt IntGt:100 “{{param}}”必须大于 {{min}}
IntGe IntGe:100 “{{param}}”必须大于等于 {{min}}
IntLt IntLt:100 “{{param}}”必须小于 {{max}}
IntLe IntLe:100 “{{param}}”必须小于等于 {{max}}
IntGtLt IntGtLt:1,100 “{{param}}”必须大于 {{min}} 小于 {{max}}
IntGeLe IntGeLe:1,100 “{{param}}”必须大于等于 {{min}} 小于等于 {{max}}
IntGtLe IntGtLe:1,100 “{{param}}”必须大于 {{min}} 小于等于 {{max}}
IntGeLt IntGeLt:1,100 “{{param}}”必须大于等于 {{min}} 小于 {{max}}
IntIn IntIn:2,3,5,7,11 “{{param}}”只能取这些值: {{valueList}}
IntNotIn IntNotIn:2,3,5,7,11 “{{param}}”不能取这些值: {{valueList}}

A.2 浮点型

内部一律使用double来处理

浮点型验证器 示例 说明
Float Float “{{param}}”必须是浮点数
FloatGt FloatGt:1.0 “{{param}}”必须大于 {{min}}
FloatGe FloatGe:1.0 “{{param}}”必须大于等于 {{min}}
FloatLt FloatLt:1.0 “{{param}}”必须小于 {{max}}
FloatLe FloatLe:1.0 “{{param}}”必须小于等于 {{max}}
FloatGtLt FloatGtLt:0,1.0 “{{param}}”必须大于 {{min}} 小于 {{max}}
FloatGeLe FloatGeLe:0,1.0 “{{param}}”必须大于等于 {{min}} 小于等于 {{max}}
FloatGtLe FloatGtLe:0,1.0 “{{param}}”必须大于 {{min}} 小于等于 {{max}}
FloatGeLt FloatGeLt:0,1.0 “{{param}}”必须大于等于 {{min}} 小于 {{max}}

A.3 bool型

bool型验证器 示例 说明
Bool Bool 合法的取值为: true, false, "true", "false"(忽略大小写)
BoolTrue BoolTrue 合法的取值为: true, "true"(忽略大小写)
BoolFalse BoolFalse 合法的取值为: false,"false"(忽略大小写)
BoolSmart BoolSmart 合法的取值为: true, false, "true", "false", 1, 0, "1", "0", "yes", "no", "y", "n"(忽略大小写)
BoolSmartTrue BoolSmartTrue 合法的取值为: true, "true", 1, "1", "yes", "y"(忽略大小写)
BoolSmartFalse BoolSmartFalse 合法的取值为: false, "false", 0, "0", "no", "n"(忽略大小写)

A.4 字符串型

字符串型验证器 示例 说明
Str Str “{{param}}”必须是字符串
StrEq StrEq:abc “{{param}}”必须等于"{{value}}"
StrEqI StrEqI:abc “{{param}}”必须等于"{{value}}"(忽略大小写)
StrNe StrNe:abc “{{param}}”不能等于"{{value}}"
StrNeI StrNeI:abc “{{param}}”不能等于"{{value}}"(忽略大小写)
StrIn StrIn:abc,def,g “{{param}}”只能取这些值: {{valueList}}
StrInI StrInI:abc,def,g “{{param}}”只能取这些值: {{valueList}}(忽略大小写)
StrNotIn StrNotIn:abc,def,g “{{param}}”不能取这些值: {{valueList}}
StrNotInI StrNotInI:abc,def,g “{{param}}”不能取这些值: {{valueList}}(忽略大小写)
StrLen StrLen:8 “{{param}}”长度必须等于 {{length}}
StrLenGe StrLenGe:8 “{{param}}”长度必须大于等于 {{min}}
StrLenLe StrLenLe:8 “{{param}}”长度必须小于等于 {{max}}
StrLenGeLe StrLenGeLe:6,8 “{{param}}”长度必须在 {{min}} - {{max}} 之间
ByteLen ByteLen:8 “{{param}}”长度(字节)必须等于 {{length}}
ByteLenGe ByteLenGe:8 “{{param}}”长度(字节)必须大于等于 {{min}}
ByteLenLe ByteLenLe:8 “{{param}}”长度(字节)必须小于等于 {{max}}
ByteLenGeLe ByteLenGeLe:6,8 “{{param}}”长度(字节)必须在 {{min}} - {{max}} 之间
Letters Letters “{{param}}”只能包含字母
Alphabet Alphabet 同Letters
Numbers Numbers “{{param}}”只能是纯数字
Digits Digits 同Numbers
LettersNumbers LettersNumbers “{{param}}”只能包含字母和数字
Numeric Numeric “{{param}}”必须是数值。一般用于大数处理(超过double表示范围的数,一般会用字符串来表示)(尚未实现大数处理), 如果是正常范围内的数, 可以使用'Int'或'Float'来检测
VarName VarName “{{param}}”只能包含字母、数字和下划线,并且以字母或下划线开头
Email Email “{{param}}”必须是合法的email
Url Url “{{param}}”必须是合法的Url地址
Ip Ip “{{param}}”必须是合法的IP地址
Mac Mac “{{param}}”必须是合法的MAC地址
Regexp Regexp:/^abc$/ Perl正则表达式匹配

A.5 数组型

数组型验证器 示例 说明
Arr Arr “{{param}}”必须是数组
ArrLen ArrLen:5 “{{param}}”数组长度必须等于 {{length}}
ArrLenGe ArrLenGe:1 “{{param}}”数组长度必须大于等于 {{min}}
ArrLenLe ArrLenLe:9 “{{param}}”数组长度必须小于等于 {{max}}
ArrLenGeLe ArrLenGeLe:1,9 “{{param}}”长数组度必须在 {{min}} ~ {{max}} 之间

A.6 对象型

对象型验证器 示例 说明
Obj Obj “{{param}}”必须是对象

A.7 文件型

文件型验证器 示例 说明
File File “{{param}}”必须是文件
FileMaxSize FileMaxSize:10mb “{{param}}”必须是文件, 且文件大小不超过{{size}}
FileMinSize FileMinSize:100kb “{{param}}”必须是文件, 且文件大小不小于{{size}}
FileImage FileImage “{{param}}”必须是图片
FileVideo FileVideo “{{param}}”必须是视频文件
FileAudio FileAudio “{{param}}”必须是音频文件
FileMimes FileMimes:mpeg,jpeg,png “{{param}}”必须是这些MIME类型的文件:{{mimes}}

A.8 日期和时间型

日期和时间型验证器 示例 说明
Date Date “{{param}}”必须符合日期格式YYYY-MM-DD
DateFrom DateFrom:2017-04-13 “{{param}}”不得早于 {{from}}
DateTo DateTo:2017-04-13 “{{param}}”不得晚于 {{to}}
DateFromTo DateFromTo:2017-04-13,2017-04-13 “{{param}}”必须在 {{from}} ~ {{to}} 之间
DateTime DateTime “{{param}}”必须符合日期时间格式YYYY-MM-DD HH:mm:ss
DateTimeFrom DateTimeFrom:2017-04-13 12:00:00 “{{param}}”不得早于 {{from}}
DateTimeTo DateTimeTo:2017-04-13 12:00:00 “{{param}}”必须早于 {{to}}
DateTimeFromTo DateTimeFromTo:2017-04-13 12:00:00,2017-04-13 12:00:00 “{{param}}”必须在 {{from}} ~ {{to}} 之间

A.9 条件判断型

在一条验证规则中,条件验证器必须在其它验证器前面,多个条件验证器可以串联。

注意,条件判断中的“条件”一般是检测另外一个参数的值,而当前参数的值是由串联在条件判断验证器后面的其它验证器来验证。

条件判断型验证器 示例 说明
If If:selected 如果参数"selected"值等于 1, true, '1', 'true', 'yes'或 'y'(字符串忽略大小写)
IfNot IfNot:selected 如果参数"selected"值等于 0, false, '0', 'false', 'no'或'n'(字符串忽略大小写)
IfTrue IfTrue:selected 如果参数"selected"值等于 true 或 'true'(忽略大小写)
IfFalse IfFalse:selected 如果参数"selected"值等于 false 或 'false'(忽略大小写)
IfExist IfExist:var 如果参数"var"存在
IfNotExist IfNotExist:var 如果参数"var"不存在
IfIntEq IfIntEq:var,1 if (var === 1)
IfIntNe IfIntNe:var,2 if (var !== 2). 特别要注意的是如果条件参数var的数据类型不匹配, 那么If条件是成立的; 而其它几个IfIntXx当条件参数var的数据类型不匹配时, If条件不成立
IfIntGt IfIntGt:var,0 if (var > 0)
IfIntLt IfIntLt:var,1 if (var < 0)
IfIntGe IfIntGe:var,6 if (var >= 6)
IfIntLe IfIntLe:var,8 if (var <= 8)
IfIntIn IfIntIn:var,2,3,5,7 if (in_array(var, [2,3,5,7]))
IfIntNotIn IfIntNotIn:var,2,3,5,7 if (!in_array(var, [2,3,5,7]))
IfStrEq IfStrEq:var,waiting if (var === 'waiting')
IfStrNe IfStrNe:var,editing if (var !== 'editing'). 特别要注意的是如果条件参数var的数据类型不匹配, 那么If条件是成立的; 而其它几个IfStrXx当条件参数var的数据类型不匹配时, If条件不成立
IfStrGt IfStrGt:var,a if (var > 'a')
IfStrLt IfStrLt:var,z if (var < 'z')
IfStrGe IfStrGe:var,A if (var >= 'A')
IfStrLe IfStrLe:var,Z if (var <= 'Z')
IfStrIn IfStrIn:var,normal,warning,error if (in_array(var, ['normal', 'warning', 'error'], true))
IfStrNotIn IfStrNotIn:var,warning,error if (!in_array(var, ['warning', 'error'], true))

A.10 其它验证器

其它验证器 示例 说明
Required Required 待验证的参数是必需的。如果验证器串联,除了条件型验证器外,必须为第一个验证器
Alias Alias:参数名称 自定义错误提示文本中的参数名称(必须是最后一个验证器)
>>> >>>:这是自定义错误提示文本 自定义错误提示文本(与Alias验证器二选一,必须是最后一个验证器)
自定义PHP函数 function() {} 暂不提供该机制,因为如果遇到本工具不支持的复杂参数验证,你可以直接写PHP代码来验证,不需要再经由本工具来验证(否则就是脱裤子放屁,多此一举)

All versions of validation with dependencies

PHP Build Version
Package Version
Requires php Version >=5.6
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package webgeeker/validation contains the following files

Loading the files please wait ....