成都公司:成都市成華區(qū)建設(shè)南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 鷹潭OA > 鷹潭網(wǎng)站建設(shè)公司
Zend2.0的MVC完整過程。
首要需求清晰的是,Zend2.0的發(fā)動以及MVC構(gòu)架是徹底根據(jù)事情驅(qū)動的。若是對事情驅(qū)動還不太明白的話,應(yīng)該先弄清楚什么是ZF2的事情驅(qū)動,并把握根本的EventManager用法,這是閱覽本文的根底。請參閱Using the ZF2 EventManager。
根據(jù)事情驅(qū)動MVC與傳統(tǒng)的MVC有什么不同,簡略說就是由傳統(tǒng)的雜亂流程式調(diào)用進程。變成了先在某處注冊事情,然后在某處觸發(fā)事情的簡略二元關(guān)系,事情不受代碼布局和調(diào)用流程的影響,可以便利的免除耦合。
而在比來才引進的ServiceManager也是Zend1中徹底沒有的概念,在我的了解來看,ServiceManager的引進是ZF2開發(fā)小組關(guān)于引進Di能夠帶來的元數(shù)據(jù)式編程問題(Metaprogramming)的一種反思。

ServiceManager帶來的優(yōu)點是:
將整個Zend構(gòu)架的首要局部形象化,讓布局更有安排,更利于了解
簡化Di的裝備,下降學(xué)習(xí)本錢
進一步弱化了Bootstrap,讓整個發(fā)動進程愈加簡練
ServiceManager帶來的欠好之處是:
將Di做一層封裝,無法直接經(jīng)過裝備文件操控整個構(gòu)架
自定義需求比較高的時分,反而提高了學(xué)習(xí)本錢,由于在學(xué)習(xí)Di的還還要學(xué)習(xí)ServiceManager
那么閑談至此,開端進入真實的Zend2.0 MVC構(gòu)架流程剖析,這里以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結(jié)構(gòu)所需求的ServiceManager。
這個進程中默許所依靠的一切類都寫在ZendMvcServiceServiceManagerConfiguration中。ServiceManager的內(nèi)部被劃分為5類
services 效勞
factories 工廠
abstractFactories 籠統(tǒng)工廠
aliases 別號
shared 同享效勞
項意圖裝備文件application.config.php會復(fù)寫Zend的默許裝備并載入,比方若是需求運用一個自定義的效勞,可以在裝備文件中這樣寫

