• 收到请求事件

    收到请求事件

    1. public static function onRequest(Request $request, Response $response): bool

    当EasySwoole收到任何的HTTP请求时,均会执行该事件。该事件可以对HTTP请求全局拦截。

    1. <?php
    2. public static function onRequest(Request $request, Response $response): bool
    3. {
    4. //不建议在这拦截请求,可增加一个控制器基类进行拦截
    5. //如果真要拦截,判断之后return false即可
    6. $code = $request->getRequestParam('code');
    7. if (0/*empty($code)验证失败*/){
    8. $data = Array(
    9. "code" => Status::CODE_BAD_REQUEST,
    10. "result" => [],
    11. "msg" => '验证失败'
    12. );
    13. $response->write(json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
    14. $response->withHeader('Content-type', 'application/json;charset=utf-8');
    15. $response->withStatus(Status::CODE_BAD_REQUEST);
    16. return false;
    17. }
    18. return true;
    19. }

    若在该事件中,执行 $response->end(),则该次请求不会进入路由匹配阶段。