ZF2是一个很优秀的框架,这次发布修改了zf的核心流程,主要在三个方面:模块化(ModuleManager),事件管理(EventManager),服务(ServiceManager)。
Module.php文件非常强大灵活,资料也非常少,这里只简单谈下。
在ZF2中采用了模块化的设计,每一个模块配置有一个Module.php文件,在模块加载时候进行一些初始化的工作。在这个文件里面可以做很多事情,(其实很多相同的工作也可以再module.config.php配置文件里面配置,这里就不说了)。
Module.php 有以下常用的方法:
function init($moduleManager)
function onBootstrap($MvcEvent)
function getServiceConfig()
function getViewHelperConfig()
function getControllerPluginConfig()
function getControllerConfig()
1、init和onBootstrap里面可以实现相同的功能。init优先于onBootstrap。注意init参数为moduleManager对象。
1)获取服务管理对象:$serviceManger = $moduleManager->getEvent()->getParam('ServiceManage'); 拿到sm之后就可以调用你想调用的系统服务了。
2)获取事件管理对象:$eventManager = $moduleManager->getEventManager(); 拿到em之后你就可以通过$eventManager->getSharedManager()->attach绑定你想监听的事件了。
2、onBootstrap的参数为 MvcEvent 对象。这个就更厉害了。我们看下MvcEvent类的几个常用的方法。
getApplication() 获取application服务,这个核心服务里面什么都有,获取serviceModule,EventModule等等,详情请查阅Application.php。
getRouteMatch() 获取路由服务
getRequest() 这个就不用说了吧
getResponse()
getViewModel() 获取视图对象,
getController() 获取当年的控制器类。。。这个东西又可以做很多事情
还要提一下的是$eventManager->getSharedManager()->attach() 的方法 attach($id, $event, $callback, $priority = 1) 第三个参数为回调函数,可以写成匿名函数,参数为MvcEvent 对象。
接着写:
3、getServiceConfig 返回一个配置数组:包括initializers,factories等等。 factories主要用来注册服务用的一个工厂配置函数。你可以随心所欲的把你的类注册为系统服务,然后通过serviceManager的get方法随处调用。非常方便灵活 。很重要的一点事,匿名函数传进来的参数是serviceManager对象,知道怎么做了吧,呵呵。sm无处不在。
转自http://www.cnblogs.com/yjdx1983/archive/2013/03/21/2973032.html