一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Zend Framework 2 搶先體驗

 sumi2005 2012-05-30

新一代的PHP框架Zend Framework 2 誕生了,它基于Zend Framework 1,僅支持PHP 5.3,它將在未來一年里取代其舊版本。

初探

因為熟悉Zend Framework 1,我決定進入2.x beta版本,看看有什么變化,并測試對已有的程序是否有影響。

Rob Allen寫過一個教程很適合那些從沒用過Zend Framework框架的人。你可以通過git克隆(或下一個zip包)來安裝框架,并增加一些應用模塊。

如果你想玩一個已經(jīng)寫好的框架程序,那么一個包含了實現(xiàn)數(shù)據(jù)庫表的CRUD模塊的程序,比起僅僅是“HelloWorld”的程序要好很多。

框架之所以好,是因為它已經(jīng)包含一些功能模塊及.htaccess。所以你只需要在Apache上配置,就可以運行起來。以前,一個新手在創(chuàng)建程序之前都要先配置好Zend Framework 1,我不敢說第一次使用Zend_Tool和ZF都是那么簡單。

現(xiàn)在讓我們來看看新框架的變化 - 目錄結(jié)構(gòu):

1 Application/
2     config/
3     src/
4     views/

每個模塊代碼(類)都是從配置和視圖模板中分離的,而不是強迫分開于控制器、模型、服務和其他對象。

這也意味著,理論上你想去掉在一個應用模塊,只需要去掉一個單獨的文件夾。但這并不意味著模塊之間沒有關(guān)聯(lián),例如:兩個步驟的視圖布局,就可以指定使用其他的模塊。這只需要將兩個模塊的配置合并成一個。

新標準

作為一個新的主要版本,該框架也采用新標準,并中斷對之前版本的兼容性,就像Symfony 2。

1.僅支持PHP 5.3,使用類的命名空間,不再使用下劃線來分隔虛擬包。

2.采用PSR-0 autoloading,所有模塊都在src/文件夾下,所以不再匹配類名和文件名。

3.不再有接口后綴的命名。

4.異常采用接口,所以PHP 5.3的異常是由一個模塊繼承和實現(xiàn)的(例如:Zend\Json\Interface)。

5.不再有下劃線前綴來強調(diào)私有(private)和保護(protected)的屬性和方法。

從上述可見,新標準并沒有帶來什么革命性的標志,而是它讓Coder在寫新代碼的時候減少了一些負擔的。

不完全輕量

配置有點長,但控制得當:例如,鍵名'di',在一個模塊的配置文件中包含所有的類及參數(shù)。可能有人覺得整個框架變得意外的復雜了,但我們不得不接受,為了使用其全部的特性。

另一個點,我覺得有必要提的是Module.php的配置。它被定義成自動加載的模式,這是很標準的做法。這樣我們就不會苦惱于如何加載它們。

控制器相對于Zend Framework 1變得輕量了:它們在注入對象的時候可以指定setter,而不是去搜索周圍的對象。這并不是一個什么神奇的功能:因為你可以在配置中指定setter的列表,并將引導你去思考它們的關(guān)聯(lián)性及數(shù)量??偟膩碚f控制器減輕了,甚至(理論上)可實例化。

Action返回一個視圖模型,所以使他們不需要知道視圖對象:

01 class AlbumController extends ActionController
02 {
03     /**
04      * @var \Album\Model\AlbumTable
05      */
06     protected $albumTable;
07   
08     public function indexAction()
09     {
10         return array(
11             'albums' => $this->albumTable->fetchAll(),
12         );
13     }
14   
15     public function setAlbumTable(AlbumTable $albumTable)
16     {
17         $this->albumTable = $albumTable;
18         return $this;
19     }   
20 }

與1.x的相似點

一些慣例和API與Zend Framework 1一致,這意味著你不需要再次學習它們:

1.控制器的API及其助手:在控制器里你可以獲得請求,及其他混合特征,如重定向。

2.表單允許定義元素(標簽、驗證和過濾器),并在子類中提供的初始化方法init()。

3.視圖通常遵循文件夾結(jié)構(gòu)<controller>/<action>.phtml;同樣$this可調(diào)用escape()和url()等視圖變量。

基本數(shù)據(jù)庫的支持也是基于Table Data Gateway 類及其擴展。當然你可以選擇整合Doctrine2或其他ORMs。

總結(jié)

請注意下面的問題:為什么我要使用Zend Framework 2來替代Symfony 2?
提供一個觀點:ZF2相對于使用Zend Framework 1的程序來說,有更簡單容易的代碼升級方式,并且你已經(jīng)有了ZF的使用經(jīng)驗。此外,它的設(shè)計并不落后于Symfony,而且不用全部重寫。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产日韩欧美一区二区| 亚洲一区二区久久观看| 在线欧美精品二区三区| 国产精品偷拍一区二区| 人妻巨大乳一二三区麻豆| 精品少妇人妻av一区二区蜜桃| 久久亚洲精品成人国产| 国产精品不卡免费视频| 国产成人精品一区二区在线看| 91后入中出内射在线| 国产精品午夜视频免费观看| 亚洲精品有码中文字幕在线观看 | 五月天丁香婷婷狠狠爱| 超薄丝袜足一区二区三区| 富婆又大又白又丰满又紧又硬 | 国产精品福利一二三区| 国产日本欧美韩国在线| 欧美尤物在线视频91| 国产中文另类天堂二区| 九九热在线视频观看最新| 亚洲伊人久久精品国产| 欧美日韩综合在线第一页| 尤物天堂av一区二区| 欧美日本道一区二区三区| 91欧美一区二区三区| 亚洲国产性生活高潮免费视频| 国产一区二区三区免费福利| 千仞雪下面好爽好紧好湿全文| 亚洲成人久久精品国产| 国内午夜精品视频在线观看| 九九热视频免费在线视频| 日韩特级黄片免费在线观看| 亚洲成人免费天堂诱惑| 欧美熟妇喷浆一区二区| 中文字幕禁断介一区二区| 中国少妇精品偷拍视频| 国产精品内射婷婷一级二级| 日本人妻丰满熟妇久久| 亚洲男人天堂网在线视频| 精品国产丝袜一区二区| 亚洲天堂精品在线视频|