2008年PHP回顾与展望——框架时代来临,CMS成为主流

PHP的起源

  在上个世纪最后十年,是Web应用从诞生到成熟的最重要的十年。在1990年,世界上第一个Web服务器诞生,在1991年,世界上第一个Web浏览器诞生。在随后的数年中,由于计算机硬件水平的提高,Web应用的规模也逐渐扩大。在这期间,诞生了很多Web开发语言,PHP是其中比较出众的一种语言。

  PHP 继承自一个老的工程,名叫PHP/FI。PHP/FI 在1995 年由Rasmus Lerdorf 创建,最初只是一套简单的Perl脚本,用来跟踪访问他主页的人们的信息,他给这一套脚本取名为“Personal Home Page Tools”。随着更多功能需求的增加,Rasmus写了一个更大的C语言的实现,它可以访问数据库,可以让用户开发简单的动态Web 程序。Rasmus发布了PHP/FI 的源代码,以便每个人都可以使用它,同时大家也可以修正它的Bug并且改进它的源代码。PHP/FI,一个专为个人主页/表单提供解释程序的程序,已经包含了今天PHP 的一些基本功能。它有着Perl 样式的变量,自动解释表单变量,并可以嵌入HTML。语法本身与Perl 很相似,但是它很有限,很简单,还稍微有些不协调。到1997年,PHP/FI 2.0,也就是它的C语言实现的第二版在全世界已经有几千个用户(估计)和大约50,000个域名安装,大约是Internet所有域名的1%。但是那时只有几个人在为该工程撰写少量当代码,它仍然只是一个人的工程。PHP/FI 2.0在经历了数个beta版本的发布后于1997年11月发布了官方正式版本。不久,PHP 3.0的第一个alpha版本的发布,PHP从此走向了成功。

  PHP 3.0是类似于当今PHP 语法结构的第一个版本。Andi Gutmans和Zeev Suraski在为一所大学的项目中开发电子商务程序时发现PHP/FI 2.0功能明显不足,于是他们重写了代码。这就是PHP 3.0。经过Andi,Rasmus和Zeev一系列的努力,考虑到PHP/FI已存在的用户群,他们决定联合发布PHP 3.0 作为PHP/FI 2.0的官方后继版本,而PHP/FI 2.0的进一步开发几乎终止。PHP 3.0 的一个最强大的功能是它的可扩展性。除了给最终用户提供数据库、协议和API 的基础结构,它的可扩展性还吸引了大量的开发人员加入并提交新的模块。后来证实,这是 PHP 3.0取得巨大成功的关键。PHP 3.0中的其它关键功能包括面向对象的支持和更强大和协调的语法结构。这个全新的语言伴随着一个新的名称发布。它从PHP/FI 2.0的名称中移去了暗含“本语言只限于个人使用”的部分。它被命名为简单的缩写“PHP”。这是一种递归的缩写,它的全称是——PHP: Hypertext Preprocessor。1998 年末,PHP的安装人数几近10,000,有大约100,000 个网站报告他们使用了PHP。在 PHP 3.0 的顶峰,Internet 上 10% 的 Web 服务器上都安装了它。约九个月的公开测试后,官方于1998年6月正式发布PHP 3.0。

  PHP经过了3个版本的演化,已经变成一个非常强大的Web开发语言。这种语言非常的易用,而且它拥有一个强大的类库,而且类库的命名规则也十分规范,就算对一些函数的功能不了解,也可以通过函数名猜测出来。这使得PHP十分容易学习,而且PHP程序可以直接使用HTML编辑器来处理,因此,PHP在1998年之后就变得非常流行,有很多大的门户网站(如sina)都使用了PHP作为自己的Web开发语言。


PHP4——历史回顾

  在PHP诞生的随后几年,Web应用逐渐被广大用户认可。在这期间,也诞生了一些和PHP类似的Web开发语言,这其中最著名的要数ASP和JSP(ASP和JSP和PHP不同,它们本身并不是语言,而是一种Web开发技术,ASP可以使用JScript或VBScript进行开发,而JSP只能使用Java进行开发)。ASP诞生于1996年,这也是在微软前CEO比尔.盖茨宣布将微软的产品都加上Internet功能的第二年。ASP虽然只能运行在Windows平台上,但由于微软的大力支持和ASP的简单易用,使这种技术逐渐从PHP手中抢来了大量的用户。而在1998年诞生的JSP更是拥有强劲的势头。由于JSP几乎和PHP具有同样的优势,而且JSP是运行在JVM上的,因此,它的效率从理论上要比PHP高。随着这两种技术的诞生,PHP正在受到两面夹击。

  于是,1998年的冬天,PHP 3.0官方发布不久,Andi Gutmans和Zeev Suraski开始重新编写PHP代码。他们的设计目标是增强复杂程序运行时的性能和PHP自身代码的模块性。PHP 3.0的新功能和广泛的第三方数据库及API的支持固然不错,但是PHP 3.0没有高效处理如此复杂程序的能力。随后,“Zend Engine”(这是Zeev和Andi的缩写)引擎腾空出世,成功地实现了设计目标,并在1999年中期首次引入PHP。基于该引擎并结合了更多新功能的PHP 4.0——一个颇具历史性的版本,在PHP 3.0发布两年后,于2000年5月22日正式发布。除了更高的性能以外,PHP 4.0还包含了其它一些关键功能,比如:支持更多的Web服务器、HTTP Sessions支持、输出缓存(output buffering)、更安全的处理用户输入的方法和一些新的语言结构。

  PHP 4的发布使得PHP真正走上了Web开发的舞台,PHP也从此成为了最受欢迎的开发语言之一。国内外PHP程序员数量与日俱增,不计其数的PHP程序应运而生,它为Web的发展做出了不可磨灭的贡献!

  到目前为止,PHP4已历经近8年,PHP官方在今年1月3日发布了它最后一个正常版本4.4.8,同时也宣布了它即将退出历史舞台:今年8月8日之前,还依然会有关键安全更新的保障,但从那以后将不再推出任何PHP4系列的版本。这也就意味着一旦出现安全问题,所有运行PHP4的服务器都将面临受到攻击的危险。


PHP5——新的脊梁

  由于ASP和JSP的一些不足,使PHP有了可乘之机。但这并不等于PHP的未来会一帆风顺。ASP的市场现在虽然逐渐消退,但它的继任者ASP.NET正在以前所未有的势头抢夺Web开发的市场,而ASP的缺点正好是ASP.NET的优点。由于ASP.NET从理论上可以使用基于.Net Framework的任何一种语言进行开发,因此它同时也就拥有了一个基于.Net Framework的强大类库。而Sun的JSP也不甘示弱,由于JSP使用起来比较复杂,因此Sun又推出了用于简化开发的JSF(用于开发前端界面,JSP+JSF相当于ASP.NET)。这使得PHP又面临着一次空前的考验。

  面对这些威胁,PHP官方于2003年6月29日推出了PHP 5的第一个测试版,随后于次年7月13日发布了PHP 5.0正式版——一款里程碑式的版本。时至今日,已近4年,PHP5已经非常成熟,为接替PHP4做好了充分的准备。PHP5增加了大量的面向对象语言特性(如:构造/析构函数、抽象类/函数、接口、克隆、异常、静态成员、访问方式和重载函数等),并对效率进行了进一步优化。此外,PHP5还先后提供了PDO(数据库抽象层,目前支持MySQL、Oracle、ODBC、PostgreSQL、SQLite、Microsoft SQL Server、Sybase、FreeTDS、Firebird、Interbase 6、IBM DB2和IBM Informix Dynamic Server数据库)、XML Reader/Writer(模仿.NET的方式提供解析XML的API)、JSON(可将PHP和Javascript数据相互转换,目前只支持UTF-8编码)、Filter(检测输入数据)和Zip Archive(压缩/解压Zip压缩包)等扩展库。

  goPHP5运动(gophp5.org)是一个多家PHP开源项目联手推动PHP5普及的运动。这些项目包括我们熟悉的PEAR、phpMyAdmin、osCommerce、Symfony、Typo3、phpMyAdmin、Drupal、Propel和Doctrine等,它们都已经宣布,在2008年2月5日以后发布的新版将要求PHP 5.2版本,以作为对GoPHP5.org支持的一部分,另外,它们还向其他任何PHP项目和应用程序发出了邀请,来共同推动PHP5的普及,不管是开源软件还是专有软件。

  自从PHP5在2004年推出以来,PHP也逐渐成为企业级Web应用的宠儿,同时和ASP.NET以及新版的JSP形成了三足鼎立的局面,这也许是大多数PHP用户所希望看到了。PHP的强大是有目共睹的,但它也有一些不足的地方,如提供了太多的函数和类,这使得它变得很复杂,这也是很多开发语言开始很好,但后来就变得难学的原因。

  除了IronPython,微软正试着让.NET平台支持更多你我熟知的动态语言,例如Perl、PHP、Ruby。根据IronPython的创造者、也是微软CLR开发部门主管Jim Hugunin表示,微软正试着以不同的方式协助动态语言进驻.NET平台,不论是加强.NET底层的支持,或者是以patterns & practices协助开发人员以动态语言构建程序。Phalanger则是PHP的.NET编译器,也就是能将PHP程序代码编译成.NET平台的MSIL。Phalanger早在2005年就开始由一群捷克的计算机系学生动手开发,原本是以 http://www.php-compiler.net/ 为根据地,但目前也进驻了CodePlex。Phalanger与PHP 5.0兼容,未来将完全支持PHP 5.2,并且能结合PHP和.NET两者的对象,例如:可以从.NET程序使用PHP开发的类库,或者以PHP程序使用C#或VB.NET开发的类库(当然,这种PHP程序必须以Phalanger编译);Phalanger最广泛的应用就是将PHP网页编译成ASP.NET网页。

  此外,微软和PHP社区经过一年的努力,通过FastCGI扩展,终于能让PHP在IIS 7.0上执行效率大增。而此前,PHP曾经是IIS心口上的稳痛,PHP在IIS的扩展速度一直跟不上其他服务端。而免费的FastCGI扩展的出现,使得PHP一越成为Windows平台之上的“一等公民”。


PHP6——展望未来

  2006年在巴黎举行的PHP开发者大会中,PHP6开发的消息开始流传开来,于PHP大会讨论的PHP6,将有很大幅度的变化。当然在发布PHP6之前,还是会有异动的情形,但是可以确定的是下面所列的数项变化,将会随着PHP6一同面世:
1、支持Unicode
2、Register Globals 将被移除
3、Magic Quotes 将消失
4、Safe Mode 取消
5、var 别名为public (已在PHP5中实现)
6、通过引用返回将出错(已在PHP5中实现)
7、zend.ze1 compatbility mode 将被移去
8、Freetype 1 and GD 1 support 将不见
9、dl() 被移到 SAPI 中
10、Register Long Array 去除  
11、APC将被导入核心


告别ASP风格的起始标签

  总体而言,PHP6将在国际化、运行效率和安全性上进行改进。虽然PHP6到目前为止连Beta版还没有推出,但它的新特性还是很值得期待的。


国内外PHP程序发展概况

  现在,国内外绝大多数程序已经支持PHP5,还有不少公司推出了仅支持PHP5的程序,下面将对框架和应用分别介绍。

  Ruby on Rails( www.rubyonrails.org )是一个使得开发、部署、维护都非常简单的Web 框架,在2004年出现之后,犹如一颗重磅炸弹落在了Web开发领域,.NET、Java和PHP都为之一震。随后,PHP框架的强大呼声起于2005年,在2006年之后各种框架层出不穷。历经几年的发展,现在虽然不少框架已经基本成型,但依然没有充分考虑实际应用中遇到的问题。比如说,现在Zend Framework(framework.zend.com)推出正式版已经一段时间了,但其还有很多不尽如人意的地方,它过多的考虑了模块的一致性和可扩展性,却缺乏具体应用的优秀解决方案,似乎只是一个类库。相比之下CakePHP更实用一些,但又缺乏灵活性。Symfony( www.symfony-project.com )和CodeIgniter( www.codeigniter.com )也是不错的框架,前者强大复杂,后者小巧易用,此外还有Horde( www.horde.org )、eZ( www.ez.no )、Prado( www.xisc.com )和Seagull(seagull.phpkitchen.com)等,也拥有自己的特色,很值得借鉴。国内的FleaPHP/QeePHP和ThinkPHP也都是很不错的框架,比较符合中国人的编程风格,文档也越来越齐全,虽然类库不是很多,但核心功能上并不比国外的弱,有些地方比老外做的还要好。但这些框架大都过于松散,不能方便的将各项功能结合起来,在使用上还是欠缺便捷,希望他们能够不断完善。

  目前PHP应用程序相当之多,比如:国外的IPB( www.invisionpower.com )、vBulletin( www.vbulletin.com )和PHPBB( www.phpbb.com )等论坛,Joomla( www.joomla.org )、Drupal( www.drupal.org )、Typo3( www.typo3.org )和XOOPS( www.xoops.org )等内容管理系统,Zen Cart( www.zen-cart.com )和osCommerce( www.oscommerce.com )等网店,这些程序在国外应用广泛,但在国内使用的人不多,可能因为使用习惯和审美不符合中国风格。国内的Discuz( www.comsenz.com )和PHPWind( www.phpwind.com )等都是很优秀的论坛和博客程序,在国内应用较多。国内的内容管理系统很多,其中:DedeCms( www.dedecms.com )主要用于建立专业文章网站,此外它还具有信息发布等功能,后台界面友好,模板美观且使用简便;Sumly( www.sumly.cn )是高端的商业CMS系统,拥有B2B、C2C、B2C和文章等模块,功能全面,模板美观且使用方便;CMSware( www.lonmo.com )主要用于建立较大的新闻、下载等网站,功能还不错,使用较为方便;帝国CMS( www.phome.net )号称万能建站,个性化功能较强,可使用较为复杂,需要一定的开发基础,它同时也没有应用专长;PHPCMS( www.phpcms.cn )功能模块较多,但缺乏专业性,操作也不够方便,可还是受到了一些站长的欢迎,据报道它的开发团队已经解散,笔者在此深表遗憾;SupeSite( www.comsenz.com )是Discuz旗下的产品,目前还处于成长阶段,虽然功能较少,但值得期待;VeryCMS( www.phpwind.com )是PHPWind旗下的产品,目前也在发展中,它的开发理念不错,目前功能还较少。国内的PHP网店程序应用较多的是ShopEx( www.shopex.cn )和ecshop( www.ecshop.com ),总体而言,它们功能都很多,使用也很方便;ShopEx模板美观,产品很成熟,但目前还没有过渡到PHP5,希望他们能抓紧时间;ecshop程序构架很好,但模板还需加强,希望能够越来越成熟。


结束语

  近几年来,PHP在Zend公司的引领下一直朝着企业级开发的方向飞速发展,Oracal、IBM和微软等公司都对PHP大力支持。PHPChina( www.phpchina.com )是Zend公司的中国区合作伙伴,在国内举行了多次高校巡回演讲和程序员聚会活动,并开展了PHP培训和Zend认证,培养了大批的PHP新生力量,为PHP在中国的普及和发展起到了重要的推动作用。最后,希望国内外的PHP开发者和支持者能够将PHP拓展到更多的应用领域,为全球的Web发展做出更大的贡献! 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值