Zend Framework 2中,对Bootstrap机制作出了很大的调整,把原来大包大揽的方式,调整为注册事件回调函数的机制。大致经历一下几个事件流程:

  • MvcEvent::EVENT_BOOTSTRAP:执行bootstrap引导

  • MvcEvent::EVENT_ROUTE:执行路由匹配

  • MvcEvent::EVENT_DISPATCH:执行控制器、动作匹配

  • MvcEvent::EVENT_RENDER:渲染视图模板

  • MvcEvent::EVENT_FINISH

正常流程下,我们的视图再第三步完成数据的填充,第四步完成渲染并输出。如果在此之前发生错误,我们如果直接输出错误信息,并且中止后面的流程呢?

以DISPATCH为例,只需要在回调函数中,通过传入的事件参数,提取出默认的Response,然后根据自己的需要,填充response,最后将这个$response返回即可。

参考代码如