国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman工具類(lèi)(插件配置,TP驗(yàn)證工具)

v2.4 版本
2023-08-09 版本更新時(shí)間
108 安裝
4 star

插件安裝

基于webman的工具:安裝

composer安裝組件命令如下:請(qǐng)?jiān)陧?xiàng)目根目錄下執(zhí)行:

composer require wekyun/webman_lib

現(xiàn)在建議使用新版本:兼容PHP >= 7.2~php8.x
用法不變,是基于TP8的驗(yàn)證器修改,并且自帶基礎(chǔ)默認(rèn)規(guī)則,做了優(yōu)化
https://gitee.com/wekyun/webman_tool#webman_tool

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 中國(guó)全量鏡像(由安暢網(wǎng)絡(luò)贊助)

composer config -g repo.packagist composer https://php.cnpkg.org

Packagist / JP 日本鏡像(一個(gè)日本開(kāi)發(fā)者搭建的鏡像)

composer config -g repo.packagist composer https://packagist.jp/

Packagist Mirror 上海交通大學(xué)鏡像

composer config -g repo.packagist composer https://packagist.mirrors.sjtug.sjtu.edu.cn/

Packagist 清華大學(xué)鏡像

composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/

github代碼地址:希望大家給個(gè)星星鼓勵(lì)一下!

https://github.com/wekyun/webman_lib

更新說(shuō)明:

插件更新:
v2.2:新增Token類(lèi)和tool類(lèi)
v2.0:
新增Req類(lèi),可以依賴(lài)注入使用,
$param = $request->setField('field')->checkAll('com', ['username.>請(qǐng)輸入賬號(hào)', 'password.>請(qǐng)輸入密碼', 'image_code.>請(qǐng)?zhí)顚?xiě)驗(yàn)證碼']);
截圖

v1.9更新:修改成自動(dòng)加載webman各個(gè)插件自己的驗(yàn)證配置使用,官方的驗(yàn)證配置和各個(gè)的插件的配置隔離互不影響

1:插件配置保存功能

定義或者修改文件配置使用演示

工具是基于xiunobbs的文件配置修改,修改前備份,修改成功刪除備份,修改失敗回復(fù)備份。

因?yàn)閣ebman是常駐內(nèi)存的框架,運(yùn)行了修改配置的代碼,需要重啟服務(wù),否則修改配置不會(huì)生效。

include './vendor/autoload.php';

$your_config_data = [
    'title' => 'my_plugin_config',
    'name' => 'web',
];
//第一個(gè)參數(shù):$your_config_data 需要修改或者新增定義的配置數(shù)據(jù)
//第二個(gè)參數(shù):你的插件名字,必須是你的插件名字
//第三個(gè)參數(shù):你插件的配置文件名,不需要.php結(jié)尾
\Wekyun\WebmanLib\WekConfig::setPluginConfigValue($your_config_data, 'demo', 'aliDianBoConfig');

2:插件參數(shù)驗(yàn)證功能(快速接收參數(shù)驗(yàn)證):tp驗(yàn)證依賴(lài)不支持8.0以上

基于\think\Validate的驗(yàn)證插件

使用此插件需要安裝TP的驗(yàn)證器composer require topthink/think-validate

除了要跟TP一樣定義規(guī)則文件外,還需要在配置目錄下創(chuàng)建check.php配置文件,具體參考下面的使用前配置。

TP驗(yàn)證器文檔:https://www.kancloud.cn/manual/thinkphp5_1/354102

項(xiàng)目開(kāi)發(fā)中,除了數(shù)據(jù)庫(kù)操作以外,最常寫(xiě)的代碼便是參數(shù)接收和數(shù)據(jù)校驗(yàn)了。

很多程序員可能就簡(jiǎn)單的接受了參數(shù),并不會(huì)去驗(yàn)證數(shù)據(jù),或者有些程序員只是簡(jiǎn)單的if去判斷一下,但是有時(shí)候有些字段必須要驗(yàn)證,字段多了驗(yàn)證數(shù)據(jù)就寫(xiě)了很多的代碼,即便是使用\think\Validate的驗(yàn)證器,也需要去麻煩一下。

作者跟你們一樣懶,但是又想讓項(xiàng)目的數(shù)據(jù)驗(yàn)證規(guī)范起來(lái),從最初的驗(yàn)證層,到現(xiàn)在一個(gè)插件就搞定,這期間有一個(gè)代碼進(jìn)化的過(guò)程。

現(xiàn)在把功能封裝成了插件貢獻(xiàn)大家使用,也希望各位在數(shù)據(jù)校驗(yàn)這方面使用起來(lái)又簡(jiǎn)單又方便。

參數(shù)接收

//需要先引入插件
use Wekyun\WebmanLib\Check;

//基礎(chǔ)使用:$param就是接收的參數(shù)
$param = Check::checkAll('com', ['name', 'age', 'sex']);
var_dump($param);

這里來(lái)解釋一下兩個(gè)參數(shù),第一個(gè)參數(shù)是com,第二個(gè)參數(shù)是一個(gè)數(shù)組

第一個(gè)參數(shù)com

這個(gè)參數(shù)是配置文件check.php中定義的,對(duì)應(yīng)mapping的com別名。此文件需要在使用之前配置,如何配置看下面的使用前的配置,com是告訴插件,要使用哪個(gè)TP驗(yàn)證規(guī)則文件的規(guī)則,你可以定義其他的規(guī)則文件,并在配置mapping中注冊(cè)別名。

'mapping' => [
        'com' => \app\common\validate\Common::class,
    ],

第二個(gè)參數(shù)數(shù)組

這第二個(gè)參數(shù)就是你要接收的參數(shù)字段了,如代碼這樣定義,就可以接受參數(shù),但是如果客戶(hù)端發(fā)送了沒(méi)有接收的參數(shù),也會(huì)被接收,如果想要接收自己指定的參數(shù)可以這么寫(xiě):

$param = Check::checkOnlyAll('com', ['name', 'age', 'sex']);
var_dump($param);

checkOnlyAll方法的意思就是驗(yàn)證接收指定的字段,沒(méi)有指定的字段是不會(huì)接收的。

參數(shù)驗(yàn)證與默認(rèn)值

字段必傳(.)

必傳驗(yàn)證很簡(jiǎn)單,name. 寫(xiě)法就是驗(yàn)證name傳遞參數(shù)是否有值,0,null,false,都算是值,只有空字符串不算傳遞了參數(shù)。

Check::checkAll('com', ['name.', 'age', 'sex']);
默認(rèn)值(:)

age:18 就是給了參數(shù)默認(rèn)值,如果接受的參數(shù)這個(gè)字段沒(méi)有值或者沒(méi)傳,就會(huì)給指派的默認(rèn)值。

需要注意的是,默認(rèn)值和必傳不要同時(shí)寫(xiě)

Check::checkAll('com', ['name.', 'age:18', 'sex']);
錯(cuò)誤提示的字段別名(|)

name|用戶(hù)名 就是給字段name自定義了錯(cuò)誤提示時(shí)的別名,如果字段name沒(méi)有傳遞,或者不符合驗(yàn)證規(guī)則,就會(huì)提示用戶(hù)名怎么樣,如果不設(shè)置別名,就會(huì)提示name怎么樣。

使用時(shí)需要注意,|必須跟在字段name面,在必傳.的前面,否則無(wú)法正常使用。

Check::checkAll('com', ['name|用戶(hù)名.', 'age:18', 'sex']);
自定義完整必傳錯(cuò)誤提示(>)

必傳字段name沒(méi)有傳遞,就會(huì)提示 請(qǐng)輸入用戶(hù)名,這在用戶(hù)端提交表單的時(shí)候,驗(yàn)證必傳字段十分有效。

需要注意的是,自定義的提示信息優(yōu)先級(jí)不會(huì)大于TP的驗(yàn)證錯(cuò)誤提示,也就是說(shuō),如果在驗(yàn)證規(guī)則文件中,設(shè)置了字段的其他錯(cuò)誤驗(yàn)證規(guī)則和驗(yàn)證錯(cuò)誤提示,那么驗(yàn)證規(guī)則的驗(yàn)證提示是優(yōu)先級(jí)最高的。

Check::checkAll('com', ['name.>請(qǐng)輸入用戶(hù)名', 'age:18', 'sex']);

使用規(guī)則總結(jié)

. 必傳

> 自定義必傳提示,常用戶(hù)前端字段友好提示

| 自定義字段錯(cuò)誤提示的別名

: 設(shè)置默認(rèn)值,此標(biāo)識(shí)符和必傳字段的 .不可以同時(shí)使用,有沖突

在字段特別多的時(shí)候,驗(yàn)證后寫(xiě)字段的必傳時(shí),這個(gè)插件非常香。

使用前的配置

需要在項(xiàng)目config目錄下創(chuàng)建一個(gè)check.php配置文件

├── app                           應(yīng)用目錄
├── config                        配置目錄
│   ├── check.php                 check配置文件
├── public                        靜態(tài)資源目錄
├── process                       自定義進(jìn)程目錄
├── runtime                       應(yīng)用的運(yùn)行時(shí)目錄,需要可寫(xiě)權(quán)限
├── start.php                     服務(wù)啟動(dòng)文件
├── vendor                        composer安裝的第三方類(lèi)庫(kù)目錄
└── support                       類(lèi)庫(kù)適配(包括第三方類(lèi)庫(kù))

在配置文件check.php中復(fù)制如下配置代碼:

<?php
//配置文件名要改成 check.php 放在webman項(xiàng)目的根目錄的config的根目錄下
return [
    //自定義錯(cuò)誤的處理方法 $msg:錯(cuò)誤提示   $err_code:錯(cuò)誤碼
//    'err_func' => function ($msg, $err_code) {

//    },
    'err_code' => 203,//默認(rèn)錯(cuò)誤的錯(cuò)誤碼
    //此配置為必須,配置需要使用的驗(yàn)證場(chǎng)景類(lèi),需要按照目錄創(chuàng)建文件寫(xiě)法參考TP的驗(yàn)證器文檔
    'mapping' => [
        'com' => \app\common\validate\Common::class,
    ],
];

然后需要?jiǎng)?chuàng)建tp驗(yàn)證器的驗(yàn)證規(guī)則文件,在 app\common\validate 目錄下創(chuàng)建 Common.php 文件,代碼如下:

需要注意的是:tp驗(yàn)證規(guī)則文件,必須在上一步的 check.php 配置文件的 mapping 中配置文件地址才能使用,\app\common\validate\Common::class的意思就是TP配置文件的命名空間地址,可以打印看下是什么就明白了。

<?php
//驗(yàn)證起規(guī)則文件
namespace app\common\validate;

use think\Validate;

//驗(yàn)證起規(guī)則文件demo,至少要定義,才能用插件
class Common extends Validate
{

    //書(shū)寫(xiě)你驗(yàn)證的字段,或者重新定義驗(yàn)證類(lèi)文件,并在check配置中的 mapping 定義驗(yàn)證文件路徑

    protected $rule = [
        'id_card' => 'idCard',//驗(yàn)證某個(gè)字段的值是否為有效的身份證格式
        'mobile' => 'mobile',//驗(yàn)證某個(gè)字段的值是否為有效的手機(jī)
        'name' => ['max' => 25, 'regex' => '/^[\w|\d]\w+/'],
        'email' => 'email',
        'age' => 'number|between:1,120',//驗(yàn)證某個(gè)字段的值是否在某個(gè)區(qū)間
        'info' => 'array',//驗(yàn)證某個(gè)字段的值是否為數(shù)組
        'accept' => 'accepted',//驗(yàn)證某個(gè)字段是否為為 yes, on, 或是 1。這在確認(rèn)"服務(wù)條款"是否同意時(shí)很有用
        //支持正則驗(yàn)證
        //'zip'=>'\d{6}',

    ];

    protected $message = [
    ];

}

另外插件的錯(cuò)誤提示要接管框架的錯(cuò)誤處理,根據(jù)自己的業(yè)務(wù)給前端提示錯(cuò)誤
全局錯(cuò)誤處理請(qǐng)參考http://wtbis.cn/a/1529
至此就可以使用了!

新增Token類(lèi):

        //Token::init 設(shè)置公鑰密鑰,長(zhǎng)度要保持一致,否則多項(xiàng)目,其他語(yǔ)言無(wú)法解析
        Token::init('d5vp782flPgdktyFG76oH99OMKJe8245', '8NONw5a9P33ysWpM');

        $token_str = Token::make(['name' => 'wekyun', 'uid' => 1], 30);
        $token_array_data = Token::read($token_str);
        if (!$token_array_data) {
            //TODO 登錄已過(guò)期,或者token無(wú)效,需要重新登錄

        }
        var_dump($token_array_data);
贊助商