-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[FEATURE] 增加 RequestHandled 事件 #3573
Copy link
Copy link
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Is your feature request related to a problem? Please describe.
当开发 hyperf-cors 或者 hyperf-http-logger 等扩展时,需要同时对正常请求和异常结果进行包装,因为没有一个请求完毕的最终结果事件,需要增加ExceptionHandler来处理异常情况,同时还要说明让其异常处理器的顺序,例如想定义一个收集异常结果的日志,就要将这个异常处理器放在返回异常结果的后面,并且不能stopPropagation()。
Describe the solution you'd like
即与上面所述,建议在处理完正常请求和异常请求包装完响应之后,增加 RequestHandled 事件来处理最终响应结果,类似于Laravel的RequestHandled事件
Additional context
在 Hyperf\HttpServer\Server 类的 onRequest() 方法 finally 块中增加类似如下代码:
...
} finally {
if ($container->has(EventDispatcherInterface::class)) {
$eventDispatcher = $container->get(EventDispatcherInterface::class);
$eventDispatcher->dispatch(new RequestHandled($psr7Request, $psr7Response));
}
...
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request