本期推荐的是一个PHP表单验证解决方案——微擎表单验证。
表单验证是每个网站不可缺少的一个组成部分,例如登录判断、提交信息、查询信息、反馈信息等,它是网站管理者与浏览者之间沟通的桥梁。微擎提供了更加方便、快捷、安全的扩展,几乎满足目前所有的验证需求。
微擎基于Laravel做了如下扩展:
- 可通过类的方式定义一个验证器
- 增加验证场景
- 增加规则管理器
- 增加数据默认值
- 增加数据过滤器
- 增加场景事件
- 修改了自定义验证规则
- 自定义消息增加了对内容的引用
- 继承集合类增加一个验证集合
验证器支持Laravel的内置规则,内置规则文档可查看规则文档:
表单验证 |《Laravel 7 中文文档 7.x》| Laravel China 社区
示例:
1、简单验证
支持简单定义一个验证器并进行验证,如果验证通过,则返回所有通过验证的值,如未通过,则抛出一个W7\Validate\Exception\ValidateException异常
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();}
2、验证器定义
为具体的验证场景或者数据表单定义验证器类,我们需要继承W7\Validate\Validate类,然后实例化后直接调用验证类的check方法即可完成验证
class LoginValidate extends Validate{protected $rule = ['user' => 'required|email','pass' => 'required|digits_between:6,16',];protected $message = ['user.required' => '请输入用户名','user.email' => '用户名格式错误','pass.required' => '请输入密码','pass.digits_between' => '密码长度为6~16位',];}
3、数据验证
$data = ['user' => '123@qq.com','pass' => ''];$validate = new LoginValidate();$validate->check($data);
此时会抛出一个W7\Validate\Exception\ValidateException异常,message为请输入密码
$data = ['user' => '123@qq.com','pass' => '123456'];$validate = new LoginValidate();$data = $validate->check($data);
验证成功,并返回通过验证的值,返回的值为数组类型。
更多内容请大家自行前往阅读。