我想將thinkphp項(xiàng)目轉(zhuǎn)換成 webman 項(xiàng)目,用了thinkphp 一個(gè)全局事件,即控制器的任何方法執(zhí)行后全局調(diào)用的事件,我看了webman中間件是在執(zhí)行控制器前的攔截和處理,也看了webman的事件插件,要一個(gè)一個(gè)的寫代碼來觸發(fā),就沒有類似于 thinkphp 執(zhí)行完后再統(tǒng)一調(diào)用一個(gè)方法,我在這個(gè)方法中處理我的業(yè)務(wù)邏輯的嗎?
thinkphp 事件如下:
class Appendevent
{
public function handle(Response $response)
{
//任何控制器中的方法執(zhí)行完后都會(huì)調(diào)用這個(gè),我需要在這里統(tǒng)一處理業(yè)務(wù)
}
}
手冊(cè)說了,中間件里可以得到請(qǐng)求和響應(yīng),可以攔截請(qǐng)求,也可以攔截響應(yīng)。
<?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
{
// 執(zhí)行控制器
$response = $handler($request);
// 控制器執(zhí)行完了要執(zhí)行的業(yè)務(wù)邏輯 ....
// 給瀏覽器返回結(jié)果
return $response;
}
}