首页课程PHP趣味闯关课堂PHP的历史(选学)

PHP的历史(选学)

目录列表

PHP的历史(选学)

PHP的作者是:Rasmus Lerdorf

Rasmus Lerdorf在1994创建了PHP


PHP 1

PHP最初是作为一个快速、实用的工具包出现的。1994年,为了在自己的网站上增加一个小巧而实用的访客追踪系统,Rasmus Lerdorf编写了PHP的雏形程序。这是一个用Perl封装的简单工具。由于使用效果并不理想,Rasmus又用C语言重写了这个工具。

后来,更多的人注意到这个轻巧而简便的程序,并且要求增加更多的功能。Rasmus决定发布一个完整的版本,将其命名为Personal Home Page Tools。后来,Rasmus又发布了一个名为FI的可以做SQL查询的工具。


PHP 2

1996年Rasmus发布了PHP/FI2.0,这是一个基本完善的PHP程序包。它不仅可以访问数据库,而且可以嵌入HTML页面。此时,PHP/FI2.0 以及吸引了大量的程序开发人员。在众多程序员之中,也包括了Zeev Suraski和Andi Gutmans,他们就是后来PHP3的始作者。由于不满足于PHP/FI在大型项目中的表现,Zeev和Andi作了重大的改进。


PHP 3

1998年末,PHP3的第一个官方正式版本发行,其特色是具有更好的执行效果以及更清晰的结构。除此之外,PHP3的强大的功能还在于它的可扩展性。除了给最终用户提供数据库、协议和API的基础结构,它的可扩展性吸引了大量的开发人员加入并提交新的模块。

这个全新的语言伴随着一个新的名称发布。这个名称更具广泛意义,而不仅局限于“个人主页工具”的概念。它被命名为简单的缩写“PHP”。这是一种递归的缩写,它的全称是——PHP:Hypertext Preprocessor

不久,Zeev Suraski和Andi Gutmans投入到了全新的PHP的开发之中。设计目标是增强程序运行性能和PHP自身代码的模块性。


PHP 4

新的PHP核心被成为“Zend” (以Zeev和Andi的名字命名)引擎,于2000年5月随着新版PHP4.0发布。PHP4的性能较PHP3有着显著的提高。相同的脚本在PHP4中运行,最高可以有近10倍的性能提升。并且Zend提供了的脚本优化器,可以把源程序转为二进制编译代码,提高性能的同时,也保护了程序源码不被暴露。

在PHP4中增加了对各种Web服务器(如Apache、IIS/PWS及OmniHTTPd 等)的支持。此外,PHP4还增加了一些新的语言特性,如丰富的数组操作函数、完整的会话机制、对输出缓存的支持等。PHP4也对一些跨平台的技术提供了扩展支持,如对Adobe PDF、SWF、Java、Microsoft.NET等技术的支持。

PHP4还增加了对类于对象的支持。尽管PHP4在这方面并不完善,但还是大大改善了对面向对象程序设计的支持。PHP4中的Pear库(PHP Extension and Application Repository)就是面向对象的应用与实践的最好例证。


PHP 5

尽管PHP4的发展是如此迅猛,但较之于其他流行的开发语言还是缺乏一些关键的功能特性,比如,PHP4中的面向对象功能并不完善,也无法实现异常(Exception)的捕捉与处理。因此在一些特殊问题的处理上还是捉襟见肘的。

2004年7月,PHP5正式版本的发布,标志着一个全新的PHP时代的到来。它的核心是第二代Zend引擎,并引入了对全新的PECL模块的支持。PHP5的最大特点是引入了面向对象的全部机制,并且保留了向下的兼容性。程序员不必再编写缺乏功能性的类,并且能够以多种方法实现类的保护。另外,在对象的集成等方面也不再存在问题。使用PHP5引进了类型提示和异常处理机制,能更有效的处理和避免错误的发生。


PHP 5.3-PHP 5.6

PHP5.3 ~PHP5.6 实际上这个阶段的版本应该算是PHP6的部分。PHP5.3最早的版本发布于2007年,这个版本最大的变化时增加了命名空间的支持。之前版本的PHP没有任何包管理的措施,广为人们所诟病,新的PHP5.3解决了此问题。而后面的PHP5.4、PHP5.5、PHP5.6 又相继增加了匿名函数闭包Traits短数组生成器语法函数自动变长参数等新特性,使PHP的语法越来越灵活。新的版本还持续对性能做了优化,从5.4到5.5、5.6,PHP语言的性能得到了大幅度的提升。


PHP 7

PHP7版本重新设计了PHP引擎,加入了静态语言才有的AST自动类型分析、JIT即时编译,使得PHP语言的性能大幅提升。大量测试显示PHP7比PHP5.6在各种常见的开源项目中有60%以上到最高200%的性能提升。

PHP7解决了动态语言性能差的问题,PHP在未来既有动态语言的开发效率,又具有了静态语言般的运行性能。


注:本章为选学内容!可以选择性的看看了解一下即可!(如有错误请指出,谢谢!)

1/1