Gang Wu

Results 5 comments of Gang Wu

如上所述,要获取异常后处理的响应**Body**内容,作为扩展里提供的异常处理器,只能让用户将异常处理器放在`exceptions.php`的最下面,但如果更高优先级的异常处理器中终止了事件冒泡,即`$this-> stopPropagation()`,后面的异常处理器也就不会执行,进而无法获取异常的Body内容了。 而这个事件是在处理完所有的中间件,控制器方法和异常之后,在即将包装成SwooleResponse前触发的。

> 放到Middleware里不行? 简单的回答:不友好,且在Middleware里catch的结果也不是最终的Response。 或许我还是没用表达清楚,通过异常处理器(ExceptionHandler)将异常转换成Response,用户可以配置多个异常处理器进行修改Response的Headers或者Body,如果不是在最后一个ExceptionHandler,是获取不全完整的Response,如果Hyperf框架提供了相关的核心事件,对于开发者来说就会很容器提供诸如记录请求和响应的功能。 最终用户可以通过编程将需要的功能添加到最后的异常处理器中,但作为开发者的扩展,这样就很不友好了。

我只是提个建议,Hyperf团队考虑即可,作为开发者和贡献者,都是在为框架繁荣做贡献,为最终用户提供便利,目前我可以提供说明让最终用户将ExceptionHandler放置最末尾以支持获取Response响应的Body,也可以通过该谢Server类的onRequest方法来hack,但都有成本,最框架的维护和入侵性也更重。 Hyperf团队可以考虑将来是否增加该特征。

相同的问题,“添加条件”按钮也无法点击

应该是邮件模板修改后,缓存尚未生成,而生成文件是协程里完成的,估计还是hyperf的bug,我们临时的做法是提前生成模板视图