== 前言 ==
我原来想给这篇文字起的名字是《PHP大有前途》,后来觉得还是不要这么煽情的比较好,于是就把文章的名字改成了现在这样子。
本文的目的是总结最近半年内PHP技术方面的一些重要进步,并基于此来谈谈PHP技术应用的前途。我自己不会详细叙述每个细节,也不会把每个提到的事件、术语给出具体的出处(相关事件或术语可在google搜索到),但会把所要谈到地方大体讲清楚。
我个人认为最近半年内PHP最重要的三项进步是:Zend Framework v1.0.0的正式发布;Zend Studio for Eclipse (Neon beta)这款集成编辑环境(IDE)工具的推出;命名空间(name spaces)和后期绑定(late binding)将成为PHP 5.3/PHP 6的一部分。
== Zend Framework v1.0.0的正式发布 ==
从PHP Framekwork(框架)而言,有将近十个左右明显出色的框架
1,其中最出色的可能有5、6个左右,这包括Zend Framework, CakePHP和Symfony这三款最知名的。Symfony功能相当强大,但CakePHP在易用性等方面更胜一筹。我个人
曾优先推荐使用CakePHP。
最近一个来月我开始在公司和家里使用Zend Framework。我的使用感觉是,Zend Framework的设计特别出色,其编程设计所具有的美感可以和Smarty相媲美(Smarty是
我特别欣赏的一套PHP程序)。我认为Zend Framework将是未来大型PHP项目开发的重要框架(我个人认为它应该是首选框架)。
我认为选择Zend Framework有如下几条主要原因:
- Zend Framework是面向企业级开发的框架(抱歉,这个论述是别人可能曾经说过的,但目前我找不到出处)。
- Zend Framework代码本身的优化和在服务器端的优化是有保障的(抱歉,这个论述是别人可能曾经说过的,但目前我找不到出处)。
- Zend Framework本身的设计哲学遵循PHP的设计哲学: 简单、易用、易于扩展!(当然,首先你要比较熟悉它,才会觉得它简单、易用)
- Zend Framework有着Zend公司的专业性和强大技术保证。Zend Framework不是草莽英雄型、昙花一现型的开源软件,而是由最专业的、最权威的PHP公司组织下开发的框架。
(就我个人而言,我会优先使用Zend Framework, PEAR和Smarty这套组合作为开发工具,另外还要加上PHPUnit, Subversion等。至于Ajax,我个人会选择Dojo这款Ajax引擎。)
Zend Framework目前的缺点是:该框架似乎依然在作一些比较明显的调整(例如从v1.0.0到v1.0.3之间所作的调整),但可以接受;官方文档比较丰富,但是都是化整为零式的描述,缺乏基于完整项目的好的实例;可用于参考的、与时俱进的实例代码有限(不过你还是可以从Google代码搜索中找到个别完整的基于Zend Framework的开源项目代码)。
== Zend Studio for Eclipse这款IDE的推出 ==
我在今年秋天之前使用Zend Studio作为PHP的编辑软件,大概自十月份Zend Studio for Eclipse推出后就改用了Zend Studio for Eclipse。Zend Studio for Eclipse(不免费)与Eclipse with PDT(免费)相当类似,但有着一些额外的不免费的功能。
一直以来我个人最推崇的IDE是JBuilder企业版(Visual Studio近几年没深入用过,因此无法评价)。Zend Studio for Eclipse目前所能达到的高度虽然(明显)不及JBuilder,但是我已经相当满意了。
Zend Studio for Eclipse依然处于beta状态,依然有着一些缺点(例如界面颜色样式设置不方便、在building projects时可能停止响应等),但就Zend Studio for Eclipse相对于以前的Zend Stuido的改进来讲,我认为这款IDE的前途是光明的。(和Zend Studio for Eclipse比起来,Zend Studio就显得挺傻。)
Zend Studio for Eclipse在管理庞大代码库的时候,其所具有的优势是相当明显的。因此,Zend Studio for Eclipse应是大型PHP项目开发的重要工具。
== 命名空间和后期绑定将成为PHP 5.3/PHP 6的一部分 ==
命名空间的出现便于组织规模庞大的代码系统,便于在不同系统中共享代码。后期绑定将使得PHP与Java的面向对象的风格更接近一步,使得PHP编成的灵活性大大增加,并且将会明显丰富PHP的设计模式(目前PHP可用于实践的设计模式还是很有限的)。
PHP对命名空间的引入在过去的一两周引起较大的讨论。我个人认为命名空间的引入是无需有太多争议的。PHP超强的编程灵活性并不意味着命名空间是可有可无的。没有命名空间,PHP将始终被Java、 .NET开发者们视为小打小敲型的工具而已,难登大雅之堂;没有命名空间,PHP离企业级开发始终有那么一些距离,始终还只是更像是一把瑞士军刀,而不具有航空母舰的气质。
== 结尾 ==
以上三点重要进步为PHP未来进一步扩大应用范围提供了重要的技术保障,但是PHP在企业级开发中被更大范围地接受还是需要一定时间的。首先是因为PHP 5.3和PHP 6的推出及其稳定性依然有待时间考验,其次是在新的技术手段下依然需要一定时间进行技术积累。
如果互联网在未来2到3年还是如今天一般景气的话,那么PHP在未来三年后将应比现在更上一层楼。
[注1] 就国产中文PHP框架而言,有两款可能是最知名的:FleaPHP和ThinkPHP。可惜的是我并不研究或使用中文PHP框架,因此无法对其作出具体评价。