甜代码/蛋糕

此包已被废弃且不再维护。未建议替代包。
关于此包最新版本(1.0.0-beta)没有可用的许可信息。

PHP 数据验证器

1.0.0-beta 2015-07-22 14:27 UTC

This package is not auto-updated.

Last update: 2021-05-18 19:13:01 UTC


README

Cake 是最新的验证项目。Cake 基于Validatio,Validatio是一个不错的脚本,但将主要理由改为Cake是因为Cake比Validation快10倍,这大大提高了性能。

# 安装 仅使用Composer

composer require sweetcode/cake

虫子

  1. 当您使用匹配规则使用别名时,它不会按正确的方式工作。 #00001

我如何使用Cake?

使用它非常简单。

1 - 首先创建一个新的实例,您可以使用它来验证您的字段

$cake = new Cake;

2 - 您需要一个数组来验证。该数组应遵循以下模式

   key: <field-name>(|<field-name-alias>)
   value: array(
            key: <field-value>
            value: <field-rule>(|<field-rule>|<field-rule>(arguments)...)
        )
$fields = [
    'username'  => ['Yonas' => 'required|minlength(3)|maxlength(12)|alphanumeric'],
    'password'  => ['test' => 'required|match(repeatPassword)|minlength(4)'],
    'passwordRepeat' => ['testit' => 'required'],
    'email'     => ['test@test.com' => 'required|email']
];

3 - 现在我们验证给定的字段。

$errorHandler = $cake->validate($fields);

4 - Cake#validate() 方法返回一个 CakeErrorHandler 实例。您可以使用此实例来输出错误。

if($errorHandler->valid()) {
    echo "No errors found.";
} else {
    var_dump($errorHandler->getErrors());
}

我如何添加自定义规则?

  1. 方法名称:rule__<your-rule-name> | 用您的规则名称替换 <your-rule-name>
  2. 方法参数:rule__<your-rule-name>($field, $value, $arguments) | 您的规则方法需要三个参数。
$field       => the field name
$value       => the given value from the field
$arguments   => the given arguments that are passed into the method

2.1) 参数名称无关紧要 3. 规则方法必须是 "public" 4. 完成! - 现在您可以使用您的规则来验证字段。

所有规则的列表

名称 参数 示例 描述
alphanumeric none ['username' => ['Yonas', 'alphanumeric'] 检查字母数字字符。
collection 值列表(字符串) ['service' => ['Google', 'collection(Google, Facebook, Twitter)']] 检查值是否存在于给定的集合中。
date 日期格式(字符串) ['birthdate' => ['1.1.1990', 'date(d-m-Y)']] 检查值是否为有效的日期 - 根据给定的日期格式。该方法接受DateTime#createFromFormat方法接受的任何格式。
email none ['emailadress' => ['test@example.com', 'email']] 检查值是否为有效的电子邮件地址。
hexcolor none ['favouriteColor' => ['#FFFFFF', 'date(d-m-Y)']] 检查值是否为有效的十六进制颜色。
match 字段列表(字符串) ['password' => ['test', 'match(repeatPassword)'], 'repeatPassword' => ['test', '']] 检查值是否与给定的其他字段匹配。
ip none ['yourServer' => ['127.0.0.1', 'ip']] 检查值是否为有效的IP地址。
maxlength 最大长度(整数) ['username' => ['Yonas', 'maxlength(12)']] 检查值的最大长度。
minlength 最小长度(整数) ['username' => ['Yonas', 'minlength(4)']] 检查值的长度。
required none ['username' => ['Yonas', 'required']] 检查值是否存在。
url none ['homepage' => ['http://example.com', 'url']] 检查值是否为有效的URL。
nocaptcha secret (字符串), sendIp (布尔值) ['captcha' => [$_POST['g-recaptcha-response'], 'nocaptcha(mysecrettoke, false)']] 检查验证码是否正确回答