zf2控制器中的init方法

Dev*_*per 6 zend-framework zend-framework2

在Zendframework 1中,我们使用init()方法初始化控制器中的东西.我看到这是从zenframework 2中取出的.为什么?什么是在zf 2中实现相同功能的最佳方法.我正在升级我在zf1中开发的先前项目,我可以看到zf2中的事情与zf1相比发生了很大变化.

是否有任何其它的ZF2变化,他们的方式,我们使用其他方法,如preDispatch()postDispatch()在ZF1?

有谁经历过这个?

sup*_*bie 11

在zf2中,ControllerLoader是ServiceLoader的子类,它是ServiceManager的子类.如果您需要初始化控制器,请使用工厂,或__construct.使用__construct了simpile initalizations,如果控制器使用需要注入其他对象使用一个工厂.

preDispatch并且postDispatch也支持新事件系统.要在zf2中获得相同的结果,请为disptachrender事件注册事件处理程序.有关mvc envents的完整列表,请参阅http://akrabat.com/zend-framework-2/a-list-of-zf2-events/

另外,请看一下设置控制器工厂ZF2如何从控制器外部获取实体管理器的示例

  • 除了akrabats完整的事件列表之外,Matthew W.O'Phinney的博客http://mwop.net/blog/2012-07-30-the-new-init.html (4认同)

小智 8

我想你可以把它放到一个控制器中,它会工作.

public function onDispatch(MvcEvent $e)
Run Code Online (Sandbox Code Playgroud)