我目前正在开发一个实现前端控制器模式的 MVC 应用程序。
这个过程是这样的:
- 收到请求
- 请求变成了一个 RequestObject
- RequestObject 被传递给调度程序
- Dispatcher 然后路由,然后调用所需的控制器。
- 控制器在 ResponseObject 中返回结果。
- Dispatcher 然后将 ResponseObject 返回到应用程序的“前端”。
- 然后回显输出。
有一种特殊情况(对于 ajax 和 flash 前端):
- 调度程序将看到请求被发送到“端点”控制器。
- 端点控制器然后将请求分派给实际请求的控制器,如上所述。
- 然后将 requestObject 返回到端点控制器。
- 端点控制器然后执行其 JSON 或 AMF 编码,这将被回显。
- 然后脚本以
exit()
;结束。
我创建了一个ExceptionHandler
类并使用set_exception_handler
. 同时我创建了一个ErrorHandler
and using set_error_handler
,所有错误都被转换并作为异常抛出。
所有这些都运作良好。ExceptionHandler
然而,当我遇到这些异常之一时,我正在努力解决这个问题。在 中ExceptionHandler
,ResponseObject 被修改以反映我们需要抛出 500 错误的事实。
我想以某种方式从 ResponseObject 返回,ExceptionHandler
这样返回的 ResponseObject 可以被调度程序“捕获”,然后由“端点”控制器或“前端”控制器呈现或转换为 JSON 或 AMF 响应。
这可能吗?如果是这样,最好的方法是什么?