随着PHP越来越流行,各种PHP框架也层出不穷。特别是Ruby On Rails一夜之间变得火热后,PHP的各种开发框架也纷纷往RoR的设计思想靠拢。
Symfony、CakePHP等流行的PHP开发框架都是非常出色的,但由于文档、设计思想、开发模式不符合国人的习惯,所以在国内一直没有流行起来。而javascript:tagshow(event, 'Zend');" href="javascript:;">Zend.com推出的Zend Framework还处于雏形阶段,很难投入实际应用。
实际上,在国内一样有开发者在从事PHP框架的研究和实现。今天要介绍的就是国内开源PHP开发框架中的一个代表:FleaPHP。
FleaPHP应用程序开发框架的网址是:http://www.fleaphp.org/。
与Symfony、CakePHP和Zend Framework一样,FleaPHP除了核心之外,也提供了许多外围扩展功能。不同之处在于FleaPHP充分考虑了国内的开发模式和应用程序的运行环境。和国外框架相比,FleaPHP在许多地方都有不同的设计和实现:
在Symfony、CakePHP等框架中,开发者必须严格按照框架的约定采用MVC模式来组织代码。从好的方面来说,这可以提高应用程序的质量。但同时也限制了开发者自由发挥,并且对开发者的要求更高。所以FleaPHP没有做这种强制要求,开发者可以根据项目需求或自身情况决定是否使用MVC模式。因为在FleaPHP中,就连MVC模式也是可选的组件。
Symfony和CakePHP都提供了出色的数据库抽象层以及Active Record模式的实现。但实际上Active Record模式并不适合PHP。因为在PHP中,Active Record模式不但实现复杂,而且效率很低。因此CakePHP的Active Record也是有所妥协和修改的。而FleaPHP则干脆完全抛弃Active Record,采用更适合脚本语言的Table Data Gateway模式来封装数据库操作。不但性能更好,而且使用上也更方面。同时仍然提供了对关联记录的自动化处理。
FleaPHP采用高度模块化的结构,核心只有4个文件,其他部分都是由开发者根据需要进行组装。这种能力不但给开发者提供了极强的灵活性,还同时提高了性能。如果仔细分析过Symfony、CakePHP、Zend Framework的国外框架,可以发现这些框架哪怕只是进行最简单的操作,也要载入数十个文件。即便服务器上安装了APC这样的PHP加速程序,载入过多的文件仍然会带来不小的性能损失。而且在国内的虚拟主机上,很难找到安装了APC、eAclearcase/" target="_blank" >ccelerator这些加速器的服务器。
PHP5代表着PHP未来的发展方向,但现实情况是即便在全世界范围内而言,PHP5的市场占有率也才刚刚超过10%,其他都是PHP4,甚至还有PHP3。在国内,PHP5的市场占有率更是小的可怜。具体信息可以参考PHPChina上的相关文章(http://www.phpchina.com/html/200610/n1961.html)。所以,FleaPHP的当前版本仍然基于PHP4开发,虽然没法利用PHP5的一些新特性,却最大程度的保护了开发者的投资。
FleaPHP是国内开发者创建的,所以从源代码注释到文档,所有的一切都是中文。这对于学习使用框架的开发者来说,将提供巨大的便利。即便有问题,也可以在QQ群和论坛上得到及时反馈。
国外的框架提供的许多外围扩展功能,国内开发者要么用不上,要么不好用。就像数据验证工具,国外框架的数据验证工具通常会提供“验证邮政编码、所属州”等方法。但是这些方法根本不适合国内的情况。
FleaPHP则是完全针对国内开发的实际需求来制作外围扩展。像文件上传下载、图像验证码、数据验证、图像处理类、分页类等等,都是国内开发者日常工作中经常使用的。
所有开源协议中,BSD几乎是最“自由”的了。商业公司选择开源项目时,首选就是BSD协议。有关BSD协议的详细信息,请参考:http://www.opensource.org/licenses/bsd-license.php。
所以选择FleaPHP来做为项目的基础架构,完全不用担心遇到许可协议问题
FleaPHP是其创始人从三年前发布PFC开发框架一来持续研究和更新的成果,具有长远的发展历史和多年经验的精华积累。并且FleaPHP的每一个版本都被采用在实际项目中,因此并不是脱离实际开发的教学方案,而是一个实实在在能为开发者提高工作效率的出色工具。读者朋友们可以在http://www.fleaphp.org/livesites查看这些实际项目。
而且,FleaPHP已经有了一个稳定的团队,并且由商业公司提供资金支持。这可以保证FleaPHP项目具有稳定、可持续的发展,进而打消采用FleaPHP作为应用程序基础架构的顾虑。
当前,FleaPHP开发团队除了正在努力完善框架核心,并提供更多外围扩展功能外。还充分研究、吸收了其他开源框架的先进思想,将其他框架中的优秀功能为我所用。
即将发布的新版FleaPHP应用程序开发框架,不但修正了多个Bug,还提供了诸多新特征。从Ajax支持到“脚手架”实现,以及URL重写路由支持等。这些新特征为开发者创建功能强大的Web应用程序提供了充分保障。