英文原文:open-source-php-projects-2011,編譯:iteye
本文來自於對活躍在SourceForge和GitHub上的專案的分析研究,同時我也在Twitter上向大家進行了調查,以免漏掉了很熱門但是我卻不知道的專案。下面列出的專案都非常受歡迎,同時它們也成為了PHP程式設計界的標準,前景很好。(排名不分先後)
1. Symfony 2 及其元件
Symfony 2是一個完備的全棧HTTP框架,它可以以任何需要的方式來滿足HTTP請求,而不僅僅是一個嚴格的MVC方法。Symfony 2為定義模組提供了一個Bundle API,你可以在應用程式之間進行模組移植。
此外,Symfony 2 有21個獨立的元件,每個元件可當作一個獨立的庫。你可以用一個簡單的Git子模組檢視標準Autoloader或依賴注入容器。
2. Doctrine 和 NoSQL 對映器
Doctrine 2是成熟的ORM(物件關係對映),基於資料庫抽像層,可以通過PHP物件輕鬆訪問所有的資料庫。與此同時,越來越多的資料對映並不只針對關聯式資料庫,也有很多NoSQL資料庫,例如:
▲ 嵌入式map/reduce的面向文件的解決方案,可以用CouchDB。
▲ 宣告查詢,可以用MongoDB。
▲ 以圖形形式管理資料,可以用OrientDB。
3. HipHop 虛擬機器
HipHop是Facebook的一個開源專案,這個專案由一個PHP到C++的轉換程式、一個重新實現的PHP執行庫,以及許多常用PHP擴充套件的重寫版本構成,目的是加速和優化PHP。
最近,Facebook還發布了hhvm(HipHop Virtual Machine),它是一個PHP解釋程式,可以動態地將PHP轉換為機器語言,它可以保持語義等效地執行原始碼,適用於需要不停編輯原始檔的開發過程。
4. Moodle
在我對電子學習領域的研究中,無所不在一個工具就是Moodle(Modular Object-Oriented Dynamic Learning En vironment,模組化物件導向的動態學習環境),它是基於Web的PHP學習管理系統,其功能包括學校課程、招生、學生學習情況和教學內容的管理。
Moodle相當於學校版的WordPress,其是一個可以免費下載使用的主要軟體,另外還提供了大量第三方外掛。其應用非常廣泛。
網路上有大量的開源PHP程式碼,即便它們基於非常自由的許可,將它們放到你的新專案中也是非常困難的。有時候使用程式碼庫並不是非常便捷的。Package管理系統可以解決這一問題。
Composer(以及它的預設儲存庫管理器Packagist)是一個新的專案,嘗試以單個專案為基礎,提供包和依賴管理,它比起安裝全系統packages的PEAR來說,與Maven更相似。
這三個都是非常著名的CMS(內容管理系統),且都擁有大量的使用者。
這些工具越來越接近OOP(物件導向程式設計):Joomla有像類集合一樣的所有libraries,而Drupal有像類一樣的大量測試例項,以及幾十個不同的模組,甚至在Drupal8裡也有Symfony2元件。