cloudonaut/validator

一个简单的可重用验证器类

v1.0.1 2020-08-24 13:53 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:35 UTC


README

这是一个用于PHP的简单可重用验证器类。

安装

使用composer安装

composer require cloudonaut/validator

通过使用composer自动加载将其包含到您的脚本中,并创建一个新的验证器对象。

require './vendor/autoload.php';
use Cloudonaut\Lib\Validator;
$validator = new Validator();

手动安装

只需将src文件夹中的Validator.php文件复制到您的项目,并将其包含到您的脚本中。然后创建一个新的验证器对象。

require_once './PATH/TO/Validator.php';
use Cloudonaut\Lib\Validator;
$validator = new Validator();

基本用法

当违反规则时,验证器会自动存储违规。要检查验证器是否有违规,您可以使用hasViolations()函数。要获取违规的数组,您可以调用getViolations()。要添加违规,您可以使用许多内置检查函数之一,或者简单地将违规添加到列表中,使用您自己的代码检查值。

使用内置检查isNotEmpty的示例

检查值是否不为空。如果为空,则向验证器对象添加违规。

$value = "";
$msg = "Value can't be empty";
$validator->isNotEmpty($value, $msg);
if ($validator->hasViolations())
{
    implode("," $validator->getViolations());
}

输出

Value can't be empty

使用addViolation的示例

在这个例子中,我们需要值匹配7作为一个简单的例子。但您可以根据这个例子来构建其他与值相关的功能。例如:调用另一个API并根据结果验证值,将值与数据库表中的值进行比较等...

$value = 8;
$msg = "Value must be 7";
if ($value != 7)
{
    $validator->addViolation($msg);
}

if ($validator->hasViolations())
{
    implode("," $validator->getViolations());
}

输出

Value must be 7

组合规则的示例

您可以检查相同或其他值,数量不限。例如,电子邮件地址必须填写,并且有一个名字。但名字只能是文本。

$name = "R2D2"; // wrong name
$mail="test.example.com"; //wrong mail

$validator->isNotEmpty($name, "Name can't be empty");
$validator->isNotEmpty($mail, "Mail can't be empty");
$validator->isTextOnly($name, "Name can't have numbers");
$validator->isEmail($name, "Mails is not in the correct format");

if ($validator->hasViolations())
{
    implode(", " $validator->getViolations());
}

输出

Name can't have numbers, Mails is not in the correct format

基本函数

addViolation($msg='')

添加带有给定消息的违规

hasViolations()

检查验证器是否有违规。如果有违规,它将返回true,如果没有违规,它将返回false。

getViolations()

返回所有违规消息的数组。如果没有违规,它只返回一个空数组。

内置检查

所有函数在没有添加违规时也会返回true,在值违反规则时会返回false。

isNotEmpty($value, $msg='')

当值空时添加违规。

isText($value,$msg='')

当值不是字母数字时添加违规。

isTextOnly($value,$msg='')

当值不包含仅字母时添加违规。

isNumber($value,$msg='')

当值不是数字时添加违规。

isDigit($value,$msg='')

当值包含除数字字符以外的任何内容时添加违规。

isBetween($min, $max, $value, $msg='')

当值不在min和max值之间时添加违规。

isComplex($value,$msg='')

当值不包含时添加违规

  • 至少一个小写字母
  • 至少一个大写字母
  • 至少一个数字或符号
  • 并且长度应在8到20个字符之间

isDate($value,$msg='')

当值不是以下格式的日期时添加违规:yyyy-mm-dd

isTime($value,$msg='')

当值不是以下格式的时分秒指示时添加违规:hh:mm:ss

isEmail($value,$msg='')

当值不是电子邮件地址时添加违规

isURL($value,$msg='')

当值不是URL时添加违规

isIP($value,$msg='')

当值不是IP地址时添加违规。(v4)

isFilename($value,$msg='')

当值不是文件名时添加违规

isInList($value,$list, $msg='')

当值不在给定列表中时,添加违规项。