webman 没有全局事件吗?

indesigncs

我想将thinkphp项目转换成 webman 项目,用了thinkphp 一个全局事件,即控制器的任何方法执行后全局调用的事件,我看了webman中间件是在执行控制器前的拦截和处理,也看了webman的事件插件,要一个一个的写代码来触发,就没有类似于 thinkphp 执行完后再统一调用一个方法,我在这个方法中处理我的业务逻辑的吗?

thinkphp 事件如下:
class Appendevent
{
public function handle(Response $response)
{
//任何控制器中的方法执行完后都会调用这个,我需要在这里统一处理业务
}
}

1022 1 1
1个回答

six

手册说了,中间件里可以得到请求和响应,可以拦截请求,也可以拦截响应。

<?php
namespace app\middleware;

use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;

class Test implements MiddlewareInterface
{
    public function process(Request $request, callable $handler) : Response
    {
        // 执行控制器
        $response =  $handler($request);

       // 控制器执行完了要执行的业务逻辑 ....

        // 给浏览器返回结果
        return $response;
    }
}
年代过于久远,无法发表回答
×
🔝