Zend framework 2牵涉到的几个概念(serviceManager,eventManager)

zf2整个系统的运行中,牵涉到的核心概念,也就是开发中常见的有这么几个:serviceManager,eventManager一般我们进行常规开发的时候(也就是按照官方文档一步步来开发的时候),serviceManager用的比较多,那么我就先讲讲serviceManager的作用吧

1.serviceManager的作用

根据字面意思,也就是服务管理器的意思,也就是说,你在系统中需要调用到的类都可以通过serviceManager(serviceLocator)的get方法得到,当然这些需要预先放置到serviceManager的全部配置(application.config.php)中,另外自己需要的也要放置到模块配置(module.config.php)中,在系统启动后,可以通过打印config(print_r($this->getServiceLocator->get(‘Config’)))服务来得到所有的配置,如果没有在这里面,那么你通过serviceManager就不一定能调用出来了

上面只所有说不一定,其中一个原因就是在module.config.php配置里面的相关配置,service_manager的选项中,又包括了invokables,abstract_factories,factories,shared等,其中abstract_factories的作用就有点像__call的作用了,他可以实现规定在系统调用时如何选择相关的类,invokables顾名思义就是为了缩短类的名称或者便于理解,又或者为了重复命名,factories嘛,一般是系统级别的命名上,比如缓存管理(sessionManager)啦,又或者是数据库管理(DbAdapter)等,在abstract_factories和factories里面的类,调用的时候会自动初始化一个实例

我们来讲下abstract_factories的一个实例,我们定义个类:

然后在module.config.php中service_manager配置这样的一条:

实际的,在命名空间Test下面还有和common同级别的Db文件夹(命名空间)

那么我们在Test\Controller中的具体controller操作中,这样的调用就会起效果:

 2.顺便说下eventManager的作用

eventManager的作用就是,把一系列需要发生的操作(运行的代码)依附到某个行为上,在zf2中,module.php运行加载的时候,就有很多的行为(events)被很多反应(listeners),然后当系统执行run的时候,这些依附着的所有listeners被触发,从而按顺序进行执行,这也就解析了,当执行attach的时候,有个优先级的概念

转自http://helion.name/archives/563.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值