diff --git a/README.md b/README.md
index cb47b2c998ee5305cbebbdb47b47bc129b06cf42..d7cb5b95b019f9660b572cf092f5d67187790840 100644
--- a/README.md
+++ b/README.md
@@ -1,255 +1,230 @@
-
微梦表单验证
+# Validate
-
-
-
-
+[](https://travis-ci.org/itwmw/validate.php)
-
-
-
-
-
-
+一个灵活且强大的 PHP 数据验证库,支持多种验证规则、场景验证、自定义规则、预处理和后处理等功能。
-中文 |
-[English](https://gitee.com/yepyuyu/wm-validate/blob/6.x/README-EN.md)
+## 目录
-## 介绍
-一个让你的表单验证更为方便,快捷,安全的扩展,满足你的一切验证需求。
+- [安装](#安装)
+- [简单验证](#简单验证)
+- [验证器定义](#验证器定义)
+- [数据验证](#数据验证)
+- [验证数组](#验证数组)
+- [验证器类属性](#验证器类属性)
+- [规则定义 `$rule`](#规则定义-rule)
+- [自定义错误消息 `$message`](#自定义错误消息-message)
+- [验证场景 `$scene`](#验证场景-scene)
+- [事件 `$event`](#事件-event)
+- [预处理器 `$preprocessor`](#预处理器-preprocessor)
+- [后处理器 `$postprocessor`](#后处理器-postprocessor)
+- [自定义属性 `$customAttributes`](#自定义属性-customattributes)
+- [规则消息映射 `$ruleMessage`](#规则消息映射-rulemessage)
+- [正则表达式验证 `$regex`](#正则表达式验证-regex)
+- [规则组 `$group`](#规则组-group)
+## 安装
-## 目录
-- [验证器](https://v.itwmw.com/6/Validate.html)
-- [验证场景](https://v.itwmw.com/6/Scene.html)
-- [场景事件](https://v.itwmw.com/6/Event.html)
-- [内置规则](https://v.itwmw.com/6/BuiltRule.html)
-- [自定义验证规则](https://v.itwmw.com/6/Rule.html)
-- [规则参数解析器](https://v.itwmw.com/6/RuleParamsParser.html)
-- [自定义消息](https://v.itwmw.com/6/Message.html)
-- [数据处理器](https://v.itwmw.com/6/Processor.html)
-- [验证集合](https://v.itwmw.com/6/Collection.html)
+使用 Composer 安装:
-## 安装
-使用composer命令
-``` shell
+```bash
composer require itwmw/validate
```
-完整文档查看[完整文档](https://v.itwmw.com)
-
## 简单验证
-支持简单定义一个验证器并进行验证:
+
```php
-try {
- $data = Validate::make([
- 'user' => 'required|email',
- 'pass' => 'required|lengthBetween:6,16',
- ], [
- 'user.required' => '请输入用户名',
- 'user.email' => '用户名格式错误',
- 'pass.required' => '请输入密码',
- 'pass.lengthBetween' => '密码长度为6~16位',
- ])->check($data);
-} catch (ValidateException $e) {
- echo $e->getMessage();
+use Itwmw\Validate\Validate;
+
+$data = [
+ 'name' => 'John Doe',
+ 'email' => 'john@example.com'
+];
+
+$rules = [
+ 'name' => 'required|string|min:3',
+ 'email' => 'required|email'
+];
+
+$validator = Validate::make($rules);
+$result = $validator->check($data);
+
+if ($result->isSuccess()) {
+ echo "验证通过";
+} else {
+ print_r($result->getErrors());
}
```
-如果验证通过,则返回所有通过验证的值,如未通过,则抛出一个`Itwmw\Validate\Exception\ValidateException`异常
## 验证器定义
-为具体的验证场景或者数据表单定义验证器类,我们需要继承`Itwmw\Validate\Validate`类,然后实例化后直接调用验证类的`check`方法即可完成验证,下面是一个例子:
-我们定义一个`LoginValidate`验证器类用于登录的验证。
+你可以通过继承 `Validate` 类来定义自己的验证器:
+
```php
-class LoginValidate extends Validate
+use Itwmw\Validate\Validate;
+
+class UserValidate extends Validate
{
protected $rule = [
- 'user' => 'required|email',
- 'pass' => 'required|digits_between:6,16',
+ 'name' => 'required|string|min:3',
+ 'email' => 'required|email'
];
-
+
protected $message = [
- 'user.required' => '请输入用户名',
- 'user.email' => '用户名格式错误',
- 'pass.required' => '请输入密码',
- 'pass.digits_between' => '密码长度为6~16位',
+ 'name.required' => '名称必须填写',
+ 'email.email' => '邮箱格式不正确'
];
}
-
```
-> 类属性定义的错误消息,优先级要高于自定义规则中的默认回复,高于自定义规则方法返回的错误
-
## 数据验证
-``` php
-$data = [
- 'user' => '123@qq.com',
- 'pass' => ''
-];
-$validate = new LoginValidate();
-$validate->check($data);
-```
-此时会抛出一个`Itwmw\Validate\Exception\ValidateException`异常,message为`请输入密码`
-``` php
-$data = [
- 'user' => '123@qq.com',
- 'pass' => '123456'
-];
-$validate = new LoginValidate();
-$data = $validate->check($data);
+
+使用 `check` 方法进行数据验证:
+
+```php
+$validator = new UserValidate();
+$result = $validator->check($_POST);
+
+if ($result->isSuccess()) {
+ // 验证通过
+} else {
+ // 验证失败,输出错误信息
+ print_r($result->getErrors());
+}
```
-验证成功,并返回通过验证的值,返回的值为数组类型
## 验证数组
-验证表单的输入为数组的字段也不难。你可以使用 「点」方法来验证数组中的属性。例如,如果传入的 HTTP 请求中包含`search[keyword]`字段, 可以如下验证:
-``` php
-protected $rule = [
- 'search.order' => 'numeric|between:1,2',
- 'search.keyword' => 'chsAlphaNum',
- 'search.recycle' => 'boolean',
-];
-```
-你也可以验证数组中的每个元素。例如,要验证指定数组输入字段中的每一个 id 是唯一的,可以这么做:
-``` php
-protected $rule = [
- 'search.*.id' => 'numeric|unique:account'
-];
-```
-数组规则的错误消息的定义也一样
-``` php
-protected $message = [
- 'search.order.numeric' => '排序参数错误',
- 'search.order.between' => '排序参数错误',
- 'search.keyword.chsAlphaNum' => '关键词只能包含中文,字母,数字',
- 'search.recycle.boolean' => '参数错误:recycle',
+
+支持对数组进行验证:
+
+```php
+$rules = [
+ 'users.*.name' => 'required|string|min:3',
+ 'users.*.age' => 'required|integer|min:18'
];
+
+$validator = Validate::make($rules);
+$result = $validator->check($data);
```
+
## 验证器类属性
-### $rule
-用户定义验证器的验证规则,也可以通过`setRules`方法来进行设置,此方法为叠加,如果参数为`null`则为清空全部规则
+
+### 规则定义 `$rule`
+
+定义验证规则:
+
```php
-// 类中定义
protected $rule = [
- 'user' => 'required'
+ 'name' => 'required|string|min:3',
+ 'email' => 'required|email'
];
-
-// 使用方法定义
-$v->setRules([
- 'user' => 'required'
-]);
```
-### $message
-用户定义验证器的错误信息,也可以通过`setMessages`方法来进行设置,此方法为叠加,如果参数为`null`则为清空全部错误消息
+### 自定义错误消息 `$message`
+
+自定义错误消息:
+
```php
-// 类中定义
protected $message = [
- 'user.required' => '账号必须填写'
+ 'name.required' => '名称必须填写',
+ 'email.email' => '邮箱格式不正确'
];
-
-// 使用方法定义
-$v->setMessages([
- 'user.required' => '账号必须填写'
-]);
```
-更多用法可以查看[错误消息](https://v.itwmw.com/6/Message.html)一节
-### $scene
-定义验证场景的数据,用于指定验证场景对应的验证字段等,详细用法查看[验证场景](https://v.itwmw.com/6/Scene.html)一节,同样也可以通过`setScene`方法来进行设置,此方法为叠加,如果参数为`null`则为清空全部验证场景
+### 验证场景 `$scene`
+
+定义验证场景:
+
```php
-// 类中定义
protected $scene = [
- 'login' => ['user', 'pass']
+ 'login' => ['name', 'password'],
+ 'register' => ['name', 'email', 'password']
];
-
-// 使用方法定义
-$v->setScene([
- 'login' => ['user', 'pass']
-]);
```
-### $event
-定义此验证器下的全局事件,详细用法查看[事件](https://v.itwmw.com/6/Event.html)一节
+### 事件 `$event`
+
+定义验证前后触发的事件:
+
```php
protected $event = [
- CheckSiteStatus::class
+ 'before' => 'beforeValidate',
+ 'after' => 'afterValidate'
];
-```
-### $customAttributes
-定义验证字段的名称,也可以通过`setCustomAttributes`方法来进行设置,此方法为叠加,如果参数为`null`则为清空全部字段名称,
-错误消息中的[:attribute](https://v.itwmw.com/6/Message.html#attribute)会使用下面的值对应的替换
-```php
-protected $customAttributes = [
- 'user' => '账号',
- 'pass' => '密码'
-];
+public function beforeValidate()
+{
+ // 验证前操作
+}
+
+public function afterValidate()
+{
+ // 验证后操作
+}
```
-### $preprocess
-为字段定义一个前置数据处理器
+### 预处理器 `$preprocessor`
+
+定义数据预处理器:
+
```php
protected $preprocessor = [
- 'name' => ['默认名称', ProcessorExecCond::WHEN_EMPTY]
+ 'name' => 'trim'
];
```
-关于前置数据处理器的详情请查看[数据处理器](https://v.itwmw.com/6/Processor.html)一节
-### $postprocessor
-为字段定义一个后置数据处理器
+### 后处理器 `$postprocessor`
+
+定义数据后处理器:
+
```php
protected $postprocessor = [
- 'name' => ['trim', ProcessorExecCond::WHEN_NOT_EMPTY, ProcessorParams::Value]
+ 'age' => 'intval'
];
```
-关于后置数据处理器的详情请查看[数据处理器](https://v.itwmw.com/6/Processor.html)一节
-### $ruleMessage
-当前类中自定义方法验证失败后的错误消息
+### 自定义属性 `$customAttributes`
+
+自定义属性名称用于错误消息:
+
```php
- protected $ruleMessage = [
- ':attribute的值只能具有中文'
+protected $customAttributes = [
+ 'name' => '用户名',
+ 'email' => '邮箱地址'
];
```
-点击查看[示例](https://v.itwmw.com/6/Rule.html#%E4%BD%BF%E7%94%A8%E7%B1%BB%E6%96%B9%E6%B3%95)
-### $regex
-预定义正则表达式验证规则,详情查看[正则表达式规则](https://v.itwmw.com/6/Rule.html#%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E8%A7%84%E5%88%99)
+### 规则消息映射 `$ruleMessage`
+
+规则与消息的映射关系:
+
```php
-protected $regex = [
- 'number' => '/^\d+$/'
+protected $ruleMessage = [
+ 'required' => '字段 :attribute 必须填写',
+ 'email' => '字段 :attribute 必须是一个有效的邮箱地址'
];
```
-### $group
-定义验证规则组
-```php
-protected $group = [
- 'username' => 'alpha_num|min:5|max:10'
-];
+### 正则表达式验证 `$regex`
-protected $rule = [
- 'username' => 'required|username'
+使用正则表达式进行验证:
+
+```php
+protected $regex = [
+ 'password' => '/^[A-Za-z0-9]{6,20}$/'
];
```
-也可以使用数组格式:
+
+### 规则组 `$group`
+
+定义规则组以便复用:
+
```php
protected $group = [
- 'username' => [
- 'alpha_num',
- 'min:5',
- 'max:10'
- ]
-];
-
-protected $rule = [
- 'username' => 'required|username'
+ 'user' => ['name', 'email', 'password']
];
```
## 特别鸣谢
-感谢 Jetbrains 提供的 IDE 开源许可。
-
-[](https://www.jetbrains.com/?from=https://gitee.com/yepyuyu/wm-validate)
+感谢所有为本项目做出贡献的开发者和支持者。
\ No newline at end of file