成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
Zend2.0的MVC完整过程。
首要需求清晰的是,Zend2.0的发动以及MVC构架是彻底根据事情驱动的。若是对事情驱动还不太明白的话,应该先弄清楚什么是ZF2的事情驱动,并把握根本的EventManager用法,这是阅览本文的根底。请参阅Using the ZF2 EventManager。
根据事情驱动MVC与传统的MVC有什么不同,简略说就是由传统的杂乱流程式调用进程。变成了先在某处注册事情,然后在某处触发事情的简略二元关系,事情不受代码布局和调用流程的影响,可以便利的免除耦合。
而在比来才引进的ServiceManager也是Zend1中彻底没有的概念,在我的了解来看,ServiceManager的引进是ZF2开发小组关于引进Di能够带来的元数据式编程问题(Metaprogramming)的一种反思。

ServiceManager带来的优点是:
将整个Zend构架的首要局部形象化,让布局更有安排,更利于了解
简化Di的装备,下降学习本钱
进一步弱化了Bootstrap,让整个发动进程愈加简练
ServiceManager带来的欠好之处是:
将Di做一层封装,无法直接经过装备文件操控整个构架
自定义需求比较高的时分,反而提高了学习本钱,由于在学习Di的还还要学习ServiceManager
那么闲谈至此,开端进入真实的Zend2.0 MVC构架流程剖析,这里以5月21日的ZendSkeletonApplication为例:
榜首局部:初始化ServiceManager
ZendSkeletonApplication/public/index.php
$configuration = include 'config/application.config.php';
$serviceManager = new ServiceManager(new ServiceManagerConfiguration($configuration['service_manager']));
$serviceManager->setService('ApplicationConfiguration', $configuration);
读取整个运用的根底装备文件,初始化Mvc结构所需求的ServiceManager。
这个进程中默许所依靠的一切类都写在ZendMvcServiceServiceManagerConfiguration中。ServiceManager的内部被划分为5类
services 效劳
factories 工厂
abstractFactories 笼统工厂
aliases 别号
shared 同享效劳
项意图装备文件application.config.php会复写Zend的默许装备并载入,比方若是需求运用一个自定义的效劳,可以在装备文件中这样写

