亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

參數注解校驗

Easyswoole控制器總共有三個參數注解標簽,分別是:

  • @Param EasySwoole\HttpAnnotation\AnnotationTag\Param
  • @ApiAuth EasySwoole\HttpAnnotation\AnnotationTag\ApiAuth
  • @ApiGroupAuth EasySwoole\HttpAnnotation\AnnotationTag\ApiGroupAuth

ApiAuthApiGroupAuth均繼承自Param,對于任意一個參數注解,都要求填寫注解的name字段。

Param對象實際上是對Easyswoole/Validate參數驗證組件驗證規則的封裝,底層是調用該組件進行參數校驗。

當校驗失敗的時候,則會拋出一個EasySwoole\HttpAnnotation\Exception\Annotation\ParamValidateError異常,可以在控制器的onExcepion中進行處理。

@Param

基礎參數注解,作用域在控制器的actionMethodonRequest均為有效。例如在以下代碼中:

/**
* @Param(name="name",required="",lengthMax="25")
* @Param(name="age",integer="")
*/
function index()
{
    $data = $this->request()->getRequestParam();
    $this->response()->write("your name is {$data['name']} and age {$data['age']}");
}

那么則規定了index這個action需要nameage這兩個參數,且校驗規則分別為required="",lengthMax="25"integer=""

參數的接收

在控制器的Request對象中得到的參數值,為客戶端提交的原始值,參數的注解校驗或者預處理,并不會影響原始值。但是通過控制器自動傳參或者是上下文注解標簽得到的參數,則為經過預處理后的參數。

自動傳參
/**
* @Param(name="name",required="",lengthMax="25",from={GET,POST})
* @Param(name="age",type="int")
*/
function index($age,$name)
{
   $data = $this->request()->getRequestParam();
   $this->response()->write("your name is {$name} and age {$age}");
}

當某個action定義了參數,且有注解的時候,那么控制器會利用反射機制,根據函數定義的參數名,去取對應的參數。

注解傳參數
/**
* @Param(name="name",required="",lengthMax="25",from={GET,POST})
* @Param(name="age",type="int")
* @InjectParamsContext(key="data")
*/
function index()
{
    $data = ContextManager::getInstance()->get('data');
    $this->response()->write("your name is {$data['name']} and age {$data['age']}");
}

通過@InjectParamsContext標簽,完整命名空間是EasySwoole\HttpAnnotation\AnnotationTag\InjectParamsContext,我們可以把通過驗證的參數,設置到指定的協成上下文中,并通過上下文管理器EasySwoole\Component\Context\ContextManager得到對應的參數。其中,除了必填的key字段,還有如下幾個字段:

  • onlyParamTag

    忽略@ApiAuth@ApiGroupAuth定義的參數

  • filterNull

    忽略值為null的參數

  • filterEmpty

    忽略值被empty()判定為true的參數,注意數字0或者是字符串0與空字符串等問題

附加字段

@Param注解除了name字段為必填項,還有以下幾個輔助字段。

from

例如在以下注解中:

* @Param(name="name",required="",lengthMax="25",from={GET,POST})
* @Param(name="age",integer="",from={POST})

則規定了name字段允許的取參順序為:GET => POST,而age參數就僅僅允許為 POST 傳參。目前from的允許值為: POSTGETCOOKIE,HEADER,FILE,DI,CONTEXT,RAW,JSON,SESSION,ROUTER_PARAMS。在無規定from字段時,默認以$request->getRequestParam($paramName)方法獲得參數值。具體實現可以在EasySwoole\HttpAnnotation\AnnotationController__handleMethodAnnotation方法中查看。

type

例如以下注解中:

* @Param(name="age",type="int")

通過函數自動傳參,或者是@InjectParamsContext得到的參數時,會對age這個參數進行intval()處理。type字段可選值為:stringint,double,real,floatbooljsonarray,具體可以在EasySwoole\HttpAnnotation\AnnotationTag\ParamtypeCast方法中查看。

defaultValue

在客戶端沒有傳遞該參數的值時,可以用該字段進行默認值的定義。

preHandler

該字段是用于對某個參數值不為null時進行預處理。preHandler需要是一個callable,例如

* @Param(name="password",preHandler="md5")

則通過函數自動傳參,或者是@InjectParamsContext得到的參數時,password會被自動執行md5()

description

該字段主要用戶自動生成文檔時,參數的描述說明。

@ApiAuth

@ApiAuth注解標簽,完整的命名空間是EasySwoole\HttpAnnotation\AnnotationTag\ApiAuth,作用域在控制器的actionMethodonRequest均為有效,本質與@Param標簽并無區別,僅僅是在自動生成文檔的時候,@Param被描述為請求參數,而@ApiAuth則會被描述為權限參數。

控制器全局參數

全局注解標簽是@ApiGroupAuth,完整的命名空間是EasySwoole\HttpAnnotation\AnnotationTag\ApiGroupAuth,作用域在整個控制器。

namespace App\HttpController;

use EasySwoole\HttpAnnotation\AnnotationController;
use EasySwoole\HttpAnnotation\AnnotationTag\ApiGroupAuth;

/**
 * Class Index
 * @ApiGroupAuth(name="token",required="")
 * @package App\HttpController
 */
class Index extends AnnotationController
{

}

這樣的注解表示,Index控制器下的任何請求,都需要token這個參數。

參數覆蓋優先順序

@Param > @ApiAuth > @ApiGroupAuth

亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    午夜日韩激情| 国产一区二区黄色| 一区二区国产日产| 国产精品免费一区二区| 国产精品久久777777毛茸茸| 牛牛国产精品| 日韩av高清| 玖玖玖精品中文字幕| 美女尤物久久精品| 国产伦精品一区二区三区| 国内精品久久久久久久影视蜜臀 | 欧美一区二区三区精美影视| 国产精华一区二区三区| 玖玖精品视频| 美女精品在线观看| 久久经典综合| 久久免费国产| 久久久久综合一区二区三区| 国产一区二区高清不卡| 亚洲少妇在线| 香蕉久久夜色精品国产| 国产精品亚洲综合久久| 亚洲精品孕妇| 欧美专区一区二区三区| 国产精品主播| 久久综合中文| 国产精品久久久对白| 国外成人免费视频| 欧美日韩一区二区视频在线| 日本欧洲国产一区二区| 亚洲高清不卡一区| 午夜精品一区二区三区四区 | 99精品99久久久久久宅男| 99re6热在线精品视频播放速度 | 欧美日韩影院| 亚洲人体偷拍| 久久亚洲高清| 久久99精品久久久久久水蜜桃| 欧美日韩亚洲免费| 亚洲ai欧洲av| 亚洲福利一区| 999日本视频| 欧美韩国日本精品一区二区三区| 日本一区二区三区www| 欧美激情综合| 91久久夜色精品国产九色| 国产精品尤物| 蜜桃免费一区二区三区| 欧美在线视屏| 国产精品免费在线| 国产精品一区二区三区不卡| 日本在线播放不卡| 国内精品福利| 国产精品视频入口| 亚洲乱码国产乱码精品天美传媒| 韩国久久久久| 国产经典一区二区三区| 一区二区精品在线观看| 久久国产精品一区二区三区四区| 国模精品娜娜一二三区| 欧美日韩三级| 都市激情久久久久久久久久久| 丝袜足脚交91精品| 性感少妇一区| 亚洲春色在线| 91精品综合久久| 影音先锋欧美在线| 国产精品免费一区二区三区在线观看 | 免费一区二区三区| 久久久久se| 激情文学一区| 老牛影视免费一区二区| 亚洲精品在线视频观看| 麻豆成人av| 一区二区三区免费看| 久久久久天天天天| 亚洲视频大全| 亚洲黄色成人久久久| 久久久久国产一区二区| 欧美freesex交免费视频| 91手机在线视频| 欧美精品一卡| 欧美日韩亚洲在线| 久久国产主播精品| 欧美午夜国产| 日韩电影大全在线观看| 97久久天天综合色天天综合色hd | 久久av一区| 国产精品观看| 亚洲aⅴ天堂av在线电影软件| 久久综合婷婷| 亚洲精品专区| 欧美福利在线| 日韩欧美亚洲日产国产| 国产精品一区免费观看| 美日韩免费视频| 亚洲国产一区二区三区高清| 正在播放亚洲| 婷婷亚洲婷婷综合色香五月| 国产精品日韩一区二区三区| 久久精品成人| 亚洲中字在线| 国产精品入口| 一本色道88久久加勒比精品| 海角社区69精品视频| 中文字幕一区二区三区在线乱码| 久久精品国产第一区二区三区最新章节| 免费在线观看成人av| 亚洲人成久久| 1000部精品久久久久久久久| 亚洲手机视频| 亚洲国内精品| 亚洲精品黄色| 日韩图片一区| 国产精品综合色区在线观看| 91久久夜色精品国产九色| 狠狠色噜噜狠狠色综合久| 欧美激情91| 国产一在线精品一区在线观看| 午夜精品久久99蜜桃的功能介绍| 亚洲图片欧洲图片日韩av| 日韩av电影免费在线观看| 日韩av在线电影观看| 神马影院午夜我不卡| 在线观看欧美亚洲| 欧美激情一级片一区二区| 国产在线视频欧美一区二区三区| 国产一区二区三区自拍| 亚洲国产一区二区在线| 亚洲永久免费精品| 99国产超薄肉色丝袜交足的后果| 成人欧美一区二区| 麻豆久久久9性大片| 水蜜桃一区二区| 国户精品久久久久久久久久久不卡| 激情欧美亚洲| 久久国产精品高清| 韩国成人av| 亚洲国产精品一区二区第四页av| 伊人久久大香线蕉av一区| 黄色日韩在线| 狂野欧美一区| 色狠狠久久av五月综合| 在线观看一区视频| 免费欧美日韩| 美日韩精品免费| 欧美片第1页综合| 麻豆久久精品| 日产精品久久久一区二区| 雨宫琴音一区二区在线| 久久一区欧美| 亚洲精品9999| 国产精品久久久久久久久婷婷| 91免费版黄色| 亚洲一区二区三区午夜| 国产欧美三级| 日本一区二区三区视频在线观看| 国语自产精品视频在线看8查询8| 噜噜噜躁狠狠躁狠狠精品视频| 欧美日韩在线高清| 亚洲毛片一区| 日本高清视频一区二区三区| 最新成人av网站| 欧美精品免费观看二区| 亚洲人体偷拍| 日本一区视频在线观看免费| av成人黄色| 日韩不卡av| 久久久精彩视频| 欧美精品一区在线| 国产一区二区精品免费| 亚洲高清视频一区| 玖玖玖精品中文字幕| 中文有码久久| 在线免费观看成人网| 99在线看视频| 99国产精品久久久久老师| 日韩少妇中文字幕| 久久久久久自在自线| 欧美日韩一区二区国产| 国产一区免费在线观看| 中文精品视频一区二区在线观看| 日本视频一区二区不卡| 91文字幕巨乱亚洲香蕉| 精品二区视频| 亚洲欧美日韩精品在线| 粉嫩av一区二区三区免费观看| 国内精品一区二区| 欧美污视频久久久| 97超级碰碰| 亚洲一区免费看| 狠狠色狠狠色综合日日tαg| 日韩激情视频| 久久亚洲一区二区| 91av免费看| 国产农村妇女精品一二区| 欧美日产一区二区三区在线观看| 精品乱色一区二区中文字幕| 久久激情视频| 香蕉久久国产|