Rumah >php教程 >php手册 >从草根到大腕 PHP技术发展历程

从草根到大腕 PHP技术发展历程

WBOY
WBOYasal
2016-06-21 09:00:261425semak imbas

  在上个世纪最后十年,是Web应用从诞生到成熟的最重要的十年。在1990年,世界上第一个Web服务器诞生,在1991年,世界上第一个Web浏览器诞生。在随后的数年中,由于计算机硬件水平的提高,Web应用的规模也逐渐扩大。在这期间,也诞生了很多Web开发语言,其中PHP是比较出众的一种Web开发语言。PHP的诞生是否意味着Web应用将走向新纪元呢?它能否抵挡得注其它Web开发语言的进攻呢?

  PHP横空出世

  在1994年,Rasmus Lerdorf首次设计出了PHP程序设计语言。1995年6月,Rasmus Lerdorf在Usenet新闻组comp.infosystems.www.authoring.cgi上发布了PHP 1.0 声明。在这个早期版本中,提供了访客留言本、访客计数器等简单的功能。1995 年中,第二版的 PHP 问市,定名为 PHP/FI(Form Interpreter)。在这一版本中加入了可以处理更复杂的嵌入式标签语言的解析程序。自此奠定了 PHP 在动态网页开发上的影响力。

  自从PHP加入了这些强大的功能,它的使用量猛增。据初步统计,在 1996 年底,有一万五千个 Web 网站使用了 PHP/FI;而在1997年中期,这一数字超过了五万。

  前两个版本的成功,让PHP的设计者和使用者对PHP的未来充满了信心。在1997年,PHP开发小组又加入了 Zeev Suraski 及 Andi Gutmans(这两个人和Rasmus Lerdorf并称为PHP的三位创始人),他们自愿重新编写了底层的解析引擎,其他很多人也自愿加入了PHP的其它部分而工作,从此PHP成为了真正意义上的开源项目。在1998年6月,PHP.net发布了PHP 3.0 声明。在这一版本中PHP可以跟 Apache 服务器紧密地结合;再加上它不断的更新及加入新的功能;并且它几乎支持所有主流与非主流数据库;而且它拥有非常高的执行效率,这些优势使1999年使用PHP的网站超过了十五万!

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

  面对压力、勇往直前

  在这个多元化的世界中永远都不会有唯一的选择。在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正在受到两面夹击。

  然而PHP也不甘示弱,在经过不断完善后,终于在2000年5月推出了划时代的版本,PHP4。这个版本使用了Zend (Zeev + Andi)引擎,提供了更高的性能,而且还包含了其它一些关键功能,比如:支持更多的 Web 服务器;HTTP Sessions 支持;输出缓存(output buffering);更安全的处理用户输入的方法以及一些新的语言结构。

  而Web开发语言的竞争在进行21世纪以来也发生的不小的变化。ASP虽然在一开始赢得了一些用户,但由于ASP的开发语言是JScript和VBScript,因此,它缺乏象PHP和JSP一样强大的类库,虽然ASP可以通过调用COM组件来弥补这个缺点,但这将是非常麻烦的。而JSP虽然拥有强大的类库,也可以跨平台,但由于Java语言是强类型语言,而且JSP所定义的tag以及其它一些规范过于复杂,这使得JSP在使用上比PHP复杂。因此,PHP在上个世纪的Web竞争中略显上峰。但进行21世纪后,情况显得更加复杂了。

  羽翼已丰、三足鼎立

  由于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是开源的,并且遵循GNU的GPL协议,因此,使它的支持和参与者遍布世界各地。而经过各方的努力,PHP也终于在2004年推出了PHP5,这个PHP版本较以前的版本又了里程碑式的改进。而这个版本为PHP的最大贡献就是完善了它的面向对象模型。在以前的PHP版本中虽然也支持面向对象,但面向对象模型并不完善,如没有构造函数、析构函数、抽象类等面向对象特性。而在PHP5中这些特性得到了完善。在数据库方面PHP5也做了大量的改进,如提供了用于访问MySQL的新的数据库接口MySQLi,另外,在PHP5中还可以使用面向对象界面和预处理语句(Prepared Statement)等MySQL的新功能。另外,PHP5.0上还捆绑有小容量RDBMS--SQLite。

  而和PHP相关的产品也如雨后春笋般地涌现。尤其在国内,基于PHP的免费和商业Web程序被大量地被应用。

  让我们先看看在Web程序中经常使用了论坛。目前在国内非常流行的论坛主有3个,它们是discuz,phpwind,molyx。这3个论坛被大量使用在国内的很多个人和商业网站中。在php论坛领域已经形成了三足鼎立的局面。而随着Web2.0的流行,它们也逐渐加上了blog等新的功能。

  伴随着论坛程序的更新换代,国内的php CMS发展更迅速。在近几年,已经涌现出了很多基于PHP的文章发布系统。在2004年初有一个phparticle系统,但由于它的更新太慢,因此,用户逐渐对它失去了信心。但同时2004年也是PHP CMS发展最快的一年,老牌的inews也开始浮出水面,3.0一下跳到了4.0。2004年4月份,号称“国内最强的cms":icms开始大势宣传,让很多人趋之若鹜。在这一年还有一些其他php 新闻系统在不段前进,比如博库CMS,9466Article,冰山cms等。

  与此同时,全球领先的PHP技术领导者Zend科技公司也宣布,公司在Series D轮融资中获得2000万美金投资。此轮投资由Greylock Partners牵头,是该公司第一次投资Zend。

  这次新的投资使Zend能够更快地拓展新兴地区的市场,加速产品的发展并且扩充服务体系以满足日益增长的企业级PHP客户的需求。作为Zend科技两位联合创始人,Andi Gutmans 和 Zeev Suraski表示,“对于风险投资公司Greylock Partners看重Zend的发展潜力,并愿意共同分享PHP市场的成长,我们感到非常荣幸。”

  Zend是推动PHP应用于商业获得成功的最典型代表,它创建了对现代Web应用有深远影响的PHP开源道路。在全球范围内,现有超过2000万动态站点使用着PHP,包括Yahoo!等著名网站,目前有超过半数的Ajax-enabled和Web2.0站点选择应用PHP。除此之外,PHP也是企业用来构建服务导向型、创造和混合web服务融于新一代的综合性商业应用的语言,成为开源商业应用发展的方向。

  自从PHP5在2004年推出以来,PHP也逐渐成为企业级Web应用的宠儿。同时和ASP.NET以及新版的JSP形成了三足鼎立的局面。这也许是大多数PHP用户所希望看到了。PHP的强大是有目共睹的。但它也有一些不足的地方,如提供了太多的函数和类,这使得它变得很复杂,这也是很多开发语言开始很好,但后来就变得难学的原因。而且PHP在可视化开发上还有行,这一点ASP.NET做得就很好,目前可能只有ASP.NET能做到这一点。如果PHP提供了用于可视化开发的IDE,那么它的前途将会更加光明。但愿未来的PHP会在这些方面下一些工夫,毕竟,易用是一种开发语言最大的卖点之一。



Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:my.ini详解Artikel seterusnya:学习PHP:详解mysql4.0以后的编码配置