Zend framework2 附加到控制器调度事件
这里是ZF2问题 我喜欢ZF2中的事件驱动功能 这是我的目标 我希望使用数据库表启动会话,如果由于某种原因没有数据库连接,我希望被抛出到错误/错误模板 以下是我考虑过的一些方法。我可以附加到应用程序“路由”事件,并在路由匹配发生之前或之后立即启动会话。但是,在Mvc\Application.php文件中没有TRY-catch,所以我认为这不是做这件事的地方 但是,在被调用的控制器的分派方法周围有一个try-catch块。我注意到控制器有它自己触发的内部“分派”事件 因此,另一种可能性是,我应该附加到这个内部控制器调度事件,然后在控制器的操作方法实际执行之前,也就是在它们需要会话之前,设置会话 那么,我如何附加到这个内部“分派”方法?或者我怎样才能使任何数据库连接异常进入我的nice异常页面,而不是在没有任何异常处理的情况下作为正常的php错误被抛出 控制器上不再有init()方法,因为这是事件应该提供的功能 谢谢你的帮助Zend framework2 附加到控制器调度事件,zend-framework2,Zend Framework2,这里是ZF2问题 我喜欢ZF2中的事件驱动功能 这是我的目标 我希望使用数据库表启动会话,如果由于某种原因没有数据库连接,我希望被抛出到错误/错误模板 以下是我考虑过的一些方法。我可以附加到应用程序“路由”事件,并在路由匹配发生之前或之后立即启动会话。但是,在Mvc\Application.php文件中没有TRY-catch,所以我认为这不是做这件事的地方 但是,在被调用的控制器的分派方法周围有一个try-catch块。我注意到控制器有它自己触发的内部“分派”事件 因此,另一种可能性是,我应该附
仅供参考:我尝试附加到不同的事件,例如“bootstrap”、“loadmodules”、“loadmodules.post”。我在附加的方法中所做的只是抛出一个异常,看看我是否会出现在我拥有的尼斯错误页面中,但我没有任何运气。我最终调试了它,找到了这个内部控制器的“分派”方法。控制器拥有自己的内部事件管理器。至少这是我从调试中得到的信息。我可能错了,请纠正我 您可以控制路由并在catch块中分派正确的控制器/操作/视图(带有错误消息的控制器/操作/视图),而不是抛出异常并希望得到最好的结果。Zend已经捕获了由调度控制器引起的异常,并自动路由它们。如果数据库连接发生故障,我想让Zend将我路由到一个好的错误页面。什么时候检测到数据库连接故障?@RobAllen,当调用session_start启动数据库存储的会话时,可能会检测到。如果没有数据库连接,则会话启动将失败,因为它无法连接到数据库以获取/写入会话。