甜代码 / 蛋糕
此包已被废弃且不再维护。未建议替代包。
关于此包最新版本(1.0.0-beta)没有可用的许可信息。
PHP 数据验证器
1.0.0-beta
2015-07-22 14:27 UTC
Requires
- php: >=5.3.0
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
虫子
- 当您使用匹配规则使用别名时,它不会按正确的方式工作。 #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());
}
我如何添加自定义规则?
- 方法名称:
rule__<your-rule-name>
| 用您的规则名称替换<your-rule-name>
- 方法参数:
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方法接受的任何格式。 |
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)']] | 检查验证码是否正确回答 |