2011年最熱門的開(kāi)源PHP項(xiàng)目回顧
下面列出的項(xiàng)目都非常受歡迎,同時(shí)它們也成為了PHP編程界的標(biāo)準(zhǔn),前景很好。(排名不分先后)
1. Symfony 2 及其組件
Symfony 2是一個(gè)完備的全棧HTTP框架,它可以以任何需要的方式來(lái)滿足HTTP請(qǐng)求,而不僅僅是一個(gè)嚴(yán)格的MVC方法。Symfony 2為定義模塊提供了一個(gè)Bundle API,你可以在應(yīng)用程序之間進(jìn)行模塊移植。
此外,Symfony 2 有21個(gè)獨(dú)立的組件,每個(gè)組件可當(dāng)作一個(gè)獨(dú)立的庫(kù)。你可以用一個(gè)簡(jiǎn)單的Git子模塊查看標(biāo)準(zhǔn)Autoloader或依賴注入容器。
2. Doctrine 和 NoSQL 映射器
Doctrine 2是成熟的ORM(對(duì)象關(guān)系映射),基于數(shù)據(jù)庫(kù)抽像層,可以通過(guò)PHP對(duì)象輕松訪問(wèn)所有的數(shù)據(jù)庫(kù)。與此同時(shí),越來(lái)越多的數(shù)據(jù)映射并不只針對(duì)關(guān)系數(shù)據(jù)庫(kù),也有很多NoSQL數(shù)據(jù)庫(kù),例如:
嵌入式map/reduce的面向文檔的解決方案,可以用CouchDB。
聲明查詢,可以用MongoDB。
以圖形形式管理數(shù)據(jù),可以用OrientDB。
3. HipHop 虛擬機(jī)
HipHop是Facebook的一個(gè)開(kāi)源項(xiàng)目,這個(gè)項(xiàng)目由一個(gè)PHP到C++的轉(zhuǎn)換程序、一個(gè)重新實(shí)現(xiàn)的PHP運(yùn)行庫(kù),以及許多常用PHP擴(kuò)展的重寫版本構(gòu)成,目的是加速和優(yōu)化PHP。
最近,F(xiàn)acebook還發(fā)布了hhvm(HipHop Virtual Machine),它是一個(gè)PHP解釋程序,可以動(dòng)態(tài)地將PHP轉(zhuǎn)換為機(jī)器語(yǔ)言,它可以保持語(yǔ)義等效地執(zhí)行源代碼,適用于需要不停編輯源文件的開(kāi)發(fā)過(guò)程。
4. Moodle
在我對(duì)電子學(xué)習(xí)領(lǐng)域的研究中,無(wú)所不在一個(gè)工具就是Moodle(Modular Object-Oriented Dynamic Learning En vironment,模塊化面向?qū)ο蟮膭?dòng)態(tài)學(xué)習(xí)環(huán)境),它是基于Web的PHP學(xué)習(xí)管理系統(tǒng),其功能包括學(xué)校課程、招生、學(xué)生學(xué)習(xí)情況和教學(xué)內(nèi)容的管理。
Moodle相當(dāng)于學(xué)校版的WordPress,其是一個(gè)可以免費(fèi)下載使用的主要軟件,另外還提供了大量第三方插件。其應(yīng)用非常廣泛。
網(wǎng)絡(luò)上有大量的開(kāi)源PHP代碼,即便它們基于非常自由的許可,將它們放到你的新項(xiàng)目中也是非常困難的。有時(shí)候使用代碼庫(kù)并不是非常便捷的。Package管理系統(tǒng)可以解決這一問(wèn)題。
Composer(以及它的默認(rèn)存儲(chǔ)庫(kù)管理器Packagist)是一個(gè)新的項(xiàng)目,嘗試以單個(gè)項(xiàng)目為基礎(chǔ),提供包和依賴管理,它比起安裝全系統(tǒng)packages的PEAR來(lái)說(shuō),與Maven更相似。
這三個(gè)都是非常著名的CMS(內(nèi)容管理系統(tǒng)),且都擁有大量的使用者。
這些工具越來(lái)越接近OOP(面向?qū)ο缶幊?:Joomla有像類集合一樣的所有l(wèi)ibraries,而Drupal有像類一樣的大量測(cè)試實(shí)例,以及幾十個(gè)不同的模塊,甚至在Drupal8里也有Symfony2組件。
英文原文:http://css.dzone.com/articles/open-source-php-projects-2011
譯文:http://www.iteye.com/news/23877
【編輯推薦】