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

onRequest 事件(即收到請求事件)

使用場景及原理

EasySwoole 收到任何的 HTTP 請求時,均會執行該事件。可以使用該事件可以對 HTTP 請求全局攔截,包括對請求進行允許跨域等操作。

使用方式說明

框架對 onRequest 事件的實現在 3.4.x 及以后的版本 中做了新的改動,實現方式由原來舊版本在主服務創建事件(mainServerCreate 事件)中定義改變為在 initialize 事件 中使用 Di 方式注入。目前最新穩定版本框架(3.4.x),具體實現及使用方式 (在 EasySwooleEvent.php 中的 initialize 事件中注入) 如下:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');

        // 實現 onRequest 事件
        \EasySwoole\Component\Di::getInstance()->set(\EasySwoole\EasySwoole\SysConst::HTTP_GLOBAL_ON_REQUEST, function (\EasySwoole\Http\Request $request, \EasySwoole\Http\Response $response): bool {
            ###### 對請求進行攔截 ######
            // 不建議在這攔截請求,可增加一個控制器基類進行攔截
            // 如果真要攔截,判斷之后 return false; 即可
            /*
            $code = $request->getRequestParam('code');
            if (0){ // empty($code)驗證失敗
                $data = array(
                    "code" => \EasySwoole\Http\Message\Status::CODE_BAD_REQUEST,
                    "result" => [],
                    "msg" => '驗證失敗'
                );
                $response->write(json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
                $response->withHeader('Content-type', 'application/json;charset=utf-8');
                $response->withStatus(\EasySwoole\Http\Message\Status::CODE_BAD_REQUEST);
                return false;
            }
            return true;
            */

            ###### 處理請求的跨域問題 ######
            $origin = $request->getHeaderLine('origin') ?: '*';
            $response->withHeader('Access-Control-Allow-Origin', $origin);
            $response->withHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
            $response->withHeader('Access-Control-Allow-Credentials', 'true');
            $response->withHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, token');
            if ($request->getMethod() === 'OPTIONS') {
                $response->withStatus(\EasySwoole\Http\Message\Status::CODE_OK);
                return false;
            }

            return true;
        });
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }
}

舊版本(3.4.x 之前版本)框架的 onRequest 事件的實現如下所示:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        // TODO: Implement initialize() method.
        date_default_timezone_set('Asia/Shanghai');
    }

    public static function mainServerCreate(EventRegister $register)
    {

    }

    // 注冊 onRequest 事件回調
    public static function onRequest(Request $request, Response $response): bool
    {
        ###### 對請求進行攔截 ######
        // 不建議在這攔截請求,可增加一個控制器基類進行攔截
        // 如果真要攔截,判斷之后 return false; 即可
        /*
        $code = $request->getRequestParam('code');
        if (0){ // empty($code)驗證失敗
            $data = array(
                "code" => \EasySwoole\Http\Message\Status::CODE_BAD_REQUEST,
                "result" => [],
                "msg" => '驗證失敗'
            );
            $response->write(json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
            $response->withHeader('Content-type', 'application/json;charset=utf-8');
            $response->withStatus(\EasySwoole\Http\Message\Status::CODE_BAD_REQUEST);
            return false;
        }
        return true;
        */

        ###### 處理請求的跨域問題 ######
        $origin = $request->getHeaderLine('origin') ?: '*';
        $response->withHeader('Access-Control-Allow-Origin', $origin);
        $response->withHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
        $response->withHeader('Access-Control-Allow-Credentials', 'true');
        $response->withHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With, token');
        if ($request->getMethod() === 'OPTIONS') {
            $response->withStatus(\EasySwoole\Http\Message\Status::CODE_OK);
            return false;
        }
        return true;
    }
}

注意事項

若在該事件中,執行 $response->end(),則該次請求不會進入路由匹配階段。

亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    日韩一二三区不卡在线视频| 久久精品日产第一区二区三区乱码| 日本在线免费观看一区| 蜜桃传媒视频麻豆第一区免费观看| 精品一区二区三区免费毛片| 日韩国产伦理| 欧美精品观看| 欧美一进一出视频| 欧美精品123| 欧美日韩第一区| 亚洲一区网站| 美女亚洲精品| 欧美日韩一视频区二区| 中文亚洲字幕| 欧美一二三四五区| 亚洲免费高清| 精品国产乱码久久久久久蜜柚 | 日本成人三级| 黄色成人在线网址| 国产成人免费观看| 一区二区视频国产| 巨乳诱惑日韩免费av| 亚洲精品欧洲精品| 亚洲欧美网站| 一区二区三区四区免费视频| 国产精品手机在线| 亚洲精品国产一区| 久久男女视频| 正在播放91九色| 成人av影视在线| 欧美久久成人| 九色91在线视频| 亚洲黄色一区二区三区| 欧美日韩在线精品| 久久久久国内| 亚洲国内在线| 一道精品一区二区三区| 99在线观看| 99精品国产在热久久| 伊人久久99| 欧美激情国产日韩| 97碰碰视频| 亚洲一级二级| 亚洲国产午夜伦理片大全在线观看网站 | 亚洲福利av在线| 成人欧美一区二区三区黑人免费| 欧美人成在线| 日韩午夜激情| 欧美日韩在线观看一区二区三区| 久久最新视频| 伊人久久大香线蕉精品| 激情欧美一区二区三区中文字幕| 国产精品久久九九| 欧美99久久| 欧美一级爽aaaaa大片| 国产精品一 二 三| 久久精品导航| 麻豆成人精品| 国产女主播一区二区三区| 国产一区二区三区四区hd| 一区不卡字幕| 一区二区三区四区欧美日韩| 牛人盗摄一区二区三区视频| 国产日本一区二区三区| 超碰97在线资源| 久久久一本精品99久久精品66| 在线观看视频免费一区二区三区| 欧美 日韩 国产 一区| 亚洲ai欧洲av| 视频一区二区三| 日韩福利视频| 日韩亚洲不卡在线| 亚洲高清在线播放| 日本欧美精品久久久| 日韩av电影在线观看| 日韩免费电影一区二区| 国产精品视频一区二区三区经| 风间由美一区二区三区| 精品久久久久亚洲| 欧美主播一区二区三区美女 久久精品人| 成人三级在线| 久久精品日产第一区二区三区乱码| 高清视频一区| 久久成人资源| 日韩欧美亚洲日产国产| 一区二区三区av在线| 欧美日本不卡| 日韩香蕉视频| 久久精品一区二区三区中文字幕| 99热在线播放| 欧美日韩在线一区二区三区| 日韩精品欧美在线| 欧美精品午夜| 一本久久综合| 高清视频在线观看一区| 欧美一区二区三区四区五区六区| 一区二区三区四区欧美| 91久久中文| 波多野结衣成人在线| 欧美极品色图| 黄色亚洲大片免费在线观看| 国产精品视频福利| 九色91在线视频| 欧美午夜一区二区福利视频| 在线视频日韩| 久久天堂国产精品| 欧美.www| 蜜桃久久av| 日本一区二区高清视频| 精品成人久久| 国产亚洲精品美女久久久m| 丝袜足脚交91精品| 亚洲影院免费| 欧美综合激情| 在线播放不卡| 久久久com| 狠狠88综合久久久久综合网| 97超级碰碰| 欧美国产综合| 97免费资源站| 欧美91福利在线观看| 老司机精品导航| 椎名由奈jux491在线播放| 久久精品五月| 欧美私人啪啪vps| 国产精品综合久久久久久| 国内精品久久久久久久影视蜜臀| 久久久xxx| 欧美日本二区| 欧美12av| 欧美中文字幕| 欧美午夜电影在线观看| 精品福利影视| 久久久久99| 国内精品美女在线观看| 久久精品午夜一区二区福利| 国产视频亚洲| 欧美久久九九| 奇米影视首页 狠狠色丁香婷婷久久综合 | 日本视频一区在线观看| 久久国产精品高清| 欧美日韩国产不卡在线看| 久久综合给合久久狠狠色| 在线亚洲免费| 午夜精品偷拍| 四虎一区二区| 蜜桃av久久久亚洲精品| 99视频日韩| 国产偷自视频区视频一区二区| 一本一生久久a久久精品综合蜜 | 欧美成人一区二免费视频软件| 国产精品大全| 久久riav二区三区| 国产亚洲成人一区| 在线观看视频免费一区二区三区| 亚洲国产一区二区精品视频 | 欧美国产另类| 一区二区不卡在线观看| 国外成人免费视频| 国产精品国产一区二区 | 亚洲欧美文学| 五月天丁香综合久久国产| 国语精品免费视频| 国产精品露出视频| 3d动漫精品啪啪一区二区三区免费| 亚洲高清视频一区| 国产综合18久久久久久| 欧美日韩在线一二三| 欧美日本一区二区高清播放视频| 欧美一区国产一区| 精品亚洲欧美日韩| 欧美凹凸一区二区三区视频| 激情视频一区二区| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 欧美激情国产日韩| 欧美欧美一区二区| 日韩一二三区不卡在线视频| 日本不卡一区| 欧美日韩免费高清| 欧美日韩亚洲一区二区三区四区| 免费在线成人av电影| 日韩精品av一区二区三区| 日韩在线电影一区| 欧美日韩国产亚洲一区| 欧美日韩国产免费观看| 亚洲承认在线| 久久婷婷亚洲| 久久国产精品久久| 日韩亚洲不卡在线| 国语精品中文字幕| 国产毛片久久| 国产精品免费一区二区三区在线观看| 国产日韩在线一区二区三区| 日韩成人av网站| 欧美精品一区二区三区久久久竹菊| 亚洲图片欧洲图片日韩av| 亚洲影院免费| 九9re精品视频在线观看re6| 日韩高清av| 亚洲每日在线|