Zend Framework 2 Module.php 简要说明

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

你可能感兴趣的:(模块化,zf2,Module.php)