webman工具庫:基于TP8.X的參數(shù)驗證器,兼容PHP7.X和PHP8.X

簡介
webman框架定制開發(fā)的工具
倉庫開源地址:https://gitee.com/wekyun/webman_tool
composer主頁地址:https://packagist.org/packages/wekyun/tool
1:參數(shù)接受的驗證(是否必傳,是否符合規(guī)則),可以讓寫的代碼優(yōu)雅又參數(shù)安全
2:簡單的token類
參數(shù)接受是基于TP8.x的驗證器修改的,也就是說內(nèi)置規(guī)則可以看TP的文檔;
驗證規(guī)則文檔:https://doc.thinkphp.cn/v8_0/rule_buildin.html
安裝
在webmen的框架根目錄運行
composer require wekyun/tool
基本使用
安裝完了就可以直接使用:參考下代碼12行;
基本用法功能:1:參數(shù)接受;2:參數(shù)必填驗證;
說明:$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:參數(shù)接受
以上是純接受參數(shù)!
運行結果實例2:參數(shù)接受并驗證cs4必填
以上是接收參數(shù)并驗證必填參數(shù)!省去了必填參數(shù)的if判斷!
異常報錯需要自定義,參考其他異常處理的插件,或者自己全局托管!
高級用法配置
高級用法說明:基礎用法使用了基本默認的驗證,高級用法就是需要自定義驗證規(guī)則,原則上就是按照TP的文檔定義字段驗證,然后在本插件中映射驗證規(guī)則的路徑,在使用中即可使用映射的規(guī)則名,比如下列代碼中的‘com’,也可自己添加更多的自定義驗證規(guī)則,名稱可以是‘shop’也可以是別的。
需要在config配置目錄下創(chuàng)建 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) {
// },
//此配置為必須,配置需要使用的驗證場景類,需要按照目錄創(chuàng)建文件寫法參考TP的驗證器文檔
'mapping' => [
'def' => \Wekyun\Tool\validate\defValidate::class,//默認的,也可以自己創(chuàng)建一個,這里改成自己的
//'com' => \app\validate\ComValidate::class,//自己定義其他規(guī)則文件例如,admin shop 等場景使用的規(guī)則文件
],
],
];
使用
必傳規(guī)則如下:默認值中不能用下面這些規(guī)則符號,比如url地址中的 .
規(guī)則 | 規(guī)則說明 |
---|---|
. | 就是一個英文狀態(tài)下的點,它表示必傳 |
> | 自定義必傳提示,常用戶前端字段友好提示 |
英文狀態(tài)的豎線 | 它是自定義字段錯誤提示的別名,此處豎線是表格的邊界符,打不出來 |
: | 設置默認值,此標識符和必傳字段的 .不可以同時使用,有沖突 |
英文狀態(tài)下的 | ,它是自定義字段錯誤提示的別名
在字段特別多的時候,驗證后寫字段的必傳時,這個插件非常香。
提示:下面代碼中 $req->checkAll('com', ['name', 'age', 'sex']); com是驗證的規(guī)則文件,后面是驗證參數(shù)
<?php
namespace app\controller;
use Wekyun\Tool\Req;
class IndexController
{
public function index(Req $req)
{
//checkAll:方法是接受驗證所有的參數(shù)(get和post),只要傳遞都接收,不止第二個字段設定的
//com : 是指驗證參數(shù)要使用的的規(guī)則是哪個,這個需要在wekyun.php這個配置文件的 mapping 中先設置好
//第二個參數(shù)的數(shù)組:是指定接受的參數(shù)字段,如果字段有對應的驗證規(guī)則就會驗證
$param = $req->checkAll('com', ['name', 'age', 'sex']);//$param是接受的參數(shù),類型是數(shù)組
如果需要對參數(shù)去空格,可以使用下面的寫法:
$req->checkAll('com', ['name', 'age', 'sex']);//接收參數(shù)并驗證
$param = $req->trim();//去除空格,并返回接受的參數(shù)值
//checkGet:是接受驗證所有get傳遞的參數(shù)
$req->checkGet();
//checkPost:是接受驗證所有post傳遞的參數(shù)
$req->checkPost();
//checkOnlyAll:是接受指定的參數(shù)(get和post),下面只接收name,別的傳了也不管
$req->checkOnlyAll('com', ['name']);
//checkOnlyGet:是接受指定的參數(shù)(get),下面只接收age,別的傳了也不管
$req->checkOnlyGet('com', ['age']);
//checkOnlyPost:是接受指定的參數(shù)(post),下面只接收sex,別的傳了也不管
$req->checkOnlyPost('com', ['sex']);
}
}
composer鏡像切換
阿里云
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
華為云
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/
騰訊云
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
phpcomposer Composer官方鏡像(速度慢)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
Packagist 中國全量鏡像(由安暢網(wǎng)絡贊助)
composer config -g repo.packagist composer https://php.cnpkg.org
Packagist / JP 日本鏡像(一個日本開發(fā)者搭建的鏡像)
composer config -g repo.packagist composer https://packagist.jp/
Packagist Mirror 上海交通大學鏡像
composer config -g repo.packagist composer https://packagist.mirrors.sjtug.sjtu.edu.cn/
Packagist 清華大學鏡像
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/
希望大家給個星星鼓勵一下!
詳細文檔:https://gitee.com/wekyun/webman_tool#使用文檔