webman_tool工具库:新快速验证器,简单token类
![](/upload/avatar/112/11268.jpg)
简介
webman框架定制开发的工具
仓库开源地址:https://gitee.com/wekyun/webman_tool
composer主页地址:https://packagist.org/packages/wekyun/tool
1:参数接受的验证(是否必传,是否符合规则),可以让写的代码优雅又参数安全
2:简单的token类
参数接受是基于TP8.x的验证器修改的,也就是说内置规则可以看TP的文档;
验证规则文档:https://doc.thinkphp.cn/v8_0/rule_buildin.html
安装
在webmen的框架根目录运行
composer require wekyun/tool
基本使用
安装完了就可以直接使用:参考下代码12行;
基本用法功能:1:参数接受;2:参数必填验证;
说明:$req->request是官方的request类对象
<?php
namespace app\factory\controller;
use weklibs\common\WekBaseController;
use Wekyun\Tool\Req;
class WorkmanshipController
{
public function cs(Req $req)
{
$param = $req->checkAll(['cs1','cs2','cs3']);
return json_encode($param);
}
}
运行结果实例1:参数接受
以上是纯接受参数!
运行结果实例2:参数接受并验证cs4必填
以上是接收参数并验证必填参数!省去了必填参数的if判断!
异常报错需要自定义,参考其他异常处理的插件,或者自己全局托管!
高级用法配置
高级用法说明:基础用法使用了基本默认的验证,高级用法就是需要自定义验证规则,原则上就是按照TP的文档定义字段验证,然后在本插件中映射验证规则的路径,在使用中即可使用映射的规则名,比如下列代码中的‘com’,也可自己添加更多的自定义验证规则,名称可以是‘shop’也可以是别的。
需要在config配置目录下创建 wekyun.php 配置文件,目录结构如下。
├── app 应用目录
├── config 配置目录
│ ├── wekyun.php check配置文件
在 wekyun.php中粘贴如下代码
<?php
//配置文件名要改成 wekyun.php 放在webman项目的根目录的config的根目录下
return [
'def' => [
'err_code' => 203,//没生效
//自定义错误的处理方法 $msg:错误提示 也可以去接管抛出的异常:Wekyun\Tool\exception\ValidateException
// 'err_func' => function ($msg) {
// },
//此配置为必须,配置需要使用的验证场景类,需要按照目录创建文件写法参考TP的验证器文档
'mapping' => [
'def' => \Wekyun\Tool\validate\defValidate::class,//默认的,也可以自己创建一个,这里改成自己的
//'com' => \app\validate\ComValidate::class,//自己定义其他规则文件例如,admin shop 等场景使用的规则文件
],
],
];
使用
必传规则如下:默认值中不能用下面这些规则符号,比如url地址中的 .
规则 | 规则说明 |
---|---|
. | 就是一个英文状态下的点,它表示必传 |
> | 自定义必传提示,常用户前端字段友好提示 |
英文状态的竖线 | 它是自定义字段错误提示的别名,此处竖线是表格的边界符,打不出来 |
: | 设置默认值,此标识符和必传字段的 .不可以同时使用,有冲突 |
英文状态下的 | ,它是自定义字段错误提示的别名
在字段特别多的时候,验证后写字段的必传时,这个插件非常香。
提示:下面代码中 $req->checkAll('com', ['name', 'age', 'sex']); com是验证的规则文件,后面是验证参数
<?php
namespace app\controller;
use Wekyun\Tool\Req;
class IndexController
{
public function index(Req $req)
{
//checkAll:方法是接受验证所有的参数(get和post),只要传递都接收,不止第二个字段设定的
//com : 是指验证参数要使用的的规则是哪个,这个需要在wekyun.php这个配置文件的 mapping 中先设置好
//第二个参数的数组:是指定接受的参数字段,如果字段有对应的验证规则就会验证
$param = $req->checkAll('com', ['name', 'age', 'sex']);//$param是接受的参数,类型是数组
如果需要对参数去空格,可以使用下面的写法:
$req->checkAll('com', ['name', 'age', 'sex']);//接收参数并验证
$param = $req->trim();//去除空格,并返回接受的参数值
//checkGet:是接受验证所有get传递的参数
$req->checkGet();
//checkPost:是接受验证所有post传递的参数
$req->checkPost();
//checkOnlyAll:是接受指定的参数(get和post),下面只接收name,别的传了也不管
$req->checkOnlyAll('com', ['name']);
//checkOnlyGet:是接受指定的参数(get),下面只接收age,别的传了也不管
$req->checkOnlyGet('com', ['age']);
//checkOnlyPost:是接受指定的参数(post),下面只接收sex,别的传了也不管
$req->checkOnlyPost('com', ['sex']);
}
}