ZF2问题在这里。
我喜欢ZF2中的事件驱动内容。
这是我的目标。
我想使用数据库表启动会话,如果由于某种原因没有数据库连接,我想要抛出错误/错误模板。
以下是我考虑这样做的一些方法。我可以附加到应用程序'route'事件并在路由匹配发生之前或之后立即启动会话。但是,在Mvc \ Application.php文件中没有TRY捕获,所以我认为这不是它的地方。
然而,调用CONTROLLER的调度方法会有一个try catch块。而且我注意到控制器有自己触发的内部“调度”事件。
所以另一种可能性是我应该在控制器的动作方法实际执行之前附加到这个内部控制器调度事件并设置我的会话,因此在它们需要会话之前。
那么,我如何附加到这个内部'调度'方法?或者我怎么能做到这一点,以便任何数据库连接异常进入我的漂亮的异常页面,而不是作为一个正常的PHP错误吐出没有任何异常处理???
控制器上不再有init()方法,因为这是事件应该提供的功能。
感谢您的帮助。
仅供参考:我尝试附加到不同的事件,例如'bootstrap','loadmodules','loadmodules.post'。我在附加方法中所做的只是抛出一个异常,看看我是否会在我所拥有的错误页面中结束,但我没有任何运气。我最终调试它并找到了这个内部控制器'dispatch'方法。控制器获得自己的内部事件管理器。至少这是我从调试中收集的内容。我可能错了,请你纠正我!