本文来自于对活跃在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数据库,例如:
- 1、嵌入式map/reduce的面向文档的解决方案,可以用CouchDB。
- 2、声明查询,可以用MongoDB。
- 3、以图形形式管理数据,可以用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,其是一个可以免费下载使用的主要软件,另外还提供了大量第三方插件。其应用非常广泛。
5. Composer 和 Packagist
网络上有大量的开源PHP代码,即便它们基于非常自由的许可,将它们放到你的新项目中也是非常困难的。有时候使用代码库并不是非常便捷的。Package管理系统可以解决这一问题。
Composer(以及它的默认存储库管理器Packagist)是一个新的项目,尝试以单个项目为基础,提供包和依赖管理,它比起安装全系统packages的PEAR来说,与Maven更相似。
6. Drupal、Joomla和Wordpress
这三个都是非常著名的CMS(内容管理系统),且都拥有大量的使用者。
这些工具越来越接近OOP(面向对象编程):Joomla有像类集合一样的所有libraries,而Drupal有像类一样的大量测试实例,以及几十个不同的模块,甚至在Drupal8里也有Symfony2组件。
英文原文:http://css.dzone.com/articles/open-source-php-projects-2011