2.4 PHP的发展
最初创建时,PHP是一个大略的用Perl措辞编写的程序,只是为了统计自己的网站有多少访问者。后来又用C措辞重新编写,多年来,PHP经由无数开源贡献者的不断迭代,历经数个版本,已经成为当前最热门的Web开拓措辞。像Facebook、淘宝等早期都是用PHP写的,在中国,PHP在百度、新浪、腾讯等大型互联网公司中运用都比较多。
2.4.1 PHP的出身
1994年丹麦人Rasmus Lerdorf(雷斯莫斯·勒道夫)创建了PHP,最初只是一套大略的 Perl 脚本,用来跟踪访问他主页的人们的信息。他给这一套脚本取名为“Personal Home Page Tools”。后来他又用C措辞重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools(PHP Tools)开始对外揭橥第一个版本,Lerdorf写了一些先容此程序的文档,并且发布了PHP1.0。
在这个早期的版本中,只供应了像访客留言本、访客计数器等大略的功能。往后越来越多的网站利用了PHP,并且强烈哀求增加一些特性,比如循环语句和数组变量等。
2.4.2 PHP的迭代过程
PHP从出身到现在已经有20多年的历史,从Web时期兴起到移动互联网退潮,互联网领域各种编程措辞和技能层出不穷,Node.js、Go、Python不断地在寻衅PHP的地位。PHP措辞之以是能有本日的地位,得益于其设计者一贯屈服实用主义,将技能的繁芜性隐蔽在底层。PHP一贯在积极地掩护和升级,虽然每个措辞都有缺点,有些公司或开拓者喜新厌旧地考试测验各种新措辞,而环球仍旧有成千上万的PHPer的力量支持PHP,并且有Zend公司进行背书,PHP 必定也会与时俱进地迭代和打磨。到现在的PHP 7版本,开拓组对性能哀求极致的理念,对其进行了翻天覆地的更新就已经证明了这一点。PHP的迭代进程如下。
Ø 第2版用C措辞重写并命名为PHP/FI
在1995年年中,新的成员加入开拓行列,PHP 2.0发布了。第2版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对数据库mSQL的支持,从此建立了PHP在动态网页开拓上的地位。到了1996年年底,有1.5万多个网站利用PHP/FI;到1997年,PHP/FI 2.0也便是它的C措辞实现的第2版在全天下已经有几千个用户和大约5万个域名安装,大约是所有域名的1%。但是那时只有几个人在为该项目撰写少量的代码,它仍旧只是一个人的工程。PHP/FI 2.0 在经历了数个 beta 版本的发布后,于1997年11月发布了官方正式版本。
Ø 两位以色列开拓者加入并重新命名PHP3
而在1997年中,开始了第3版的开拓操持,两位以色列人Andi Gutmans和Zeev Suraski在为一所大学的项目中开拓电子商务程序时创造 PHP/FI 2.0 功能明显不敷,于是他们重写了代码。经由Rasmus,Andi和Zeev一系列的努力,考虑到 PHP/FI 已存在的用户群,他们决定联合发布PHP 3.0作为PHP/FI 2.0的官方后继版本,而第3版就直接定名为PHP 3.0。而 PHP/FI 2.0 的进一步开拓险些终止了。PHP 3.0是类似于当今PHP语法构造的第一个版本,一个最强大的功能是它的可扩展性。除了给终极用户供应数据库、协议和API的根本构造,它的可扩展性还吸引了大量的开拓职员加入并提交新的模块。后来证明,这是PHP 3.0取得巨大成功的关键。PHP 3.0 中的其他关键功能包括面向工具的支持和更强大和折衷的语法构造。这个全新的措辞伴随着一个新的名称发布,它从PHP/FI 2.0的名称中移去了暗含“本措辞只限于个人利用”的部分,它被命名为大略的缩写“PHP”。这是一种递归的缩写,它的全称是——PHP: Hypertext Preprocessor。约9个月的公开测试后,官方于1998年6 月正式发布PHP 3.0。
PHP 3.0跟Apache做事器紧密结合的特性,加上它不断地更新及加入新的功能;它险些支持所有主流与非主流数据库;高速的实行效率,使得PHP在1999年中的利用网站超过了15万。这时PHP的源代码完备公开,在“开源”意识增长的本日,它更是这方面的国度栋梁。不断地有新的函数库加入,以及一直地更新,使得PHP无论在UNIX、Linux或是Win32的平台上都可以有更多新的功能。它供应丰富的函数,使得在程序设计方面有着更好的支持。
Ø 引入“Zend 引擎”并成立了Zend公司
1998年的冬天,PHP 3.0 官方发布不久,Zeev Suraski和Andi Gutmans 开始重新编写 PHP 代码。设计目标是增强繁芜程序运行时的性能和PHP自身代码的模块性。PHP 3.0的新功能和广泛的第三方数据库、API的支持使得这样程序的编写成为可能,但是PHP 3.0没有高效处理如此繁芜程序的能力。
新的被称为“Zend”(这是Zeev和And 的缩写)的引擎,成功地实现了设计目标,并在 1999 年年中首次引入 PHP。由Zeev和Andi两个人创建了Zend公司,由于他们的国际技能的威信性,Zend公司和他的创建者在PHP以及开源团体中持续处于领导的核心地位,对付PHP的迅猛发展起到了强有力的推动浸染。
基于Zend引擎并结合了更多新功能的 PHP 4.0,于2000年5月发布了官方正式版本。全体脚本程序的核心大幅改动,让程序的实行速率,知足更快的哀求。在最佳化之后的效率,已较传统 CGI 或者 ASP 等程序有更好的表现。而且还有更强的新功能、更丰富的函数库。除了更高的性能以外,PHP 4.0 还包含了其他一些关键功能,例如支持更多的 Web 做事器、HTTP Sessions 支持、输出缓冲、更安全地处理用户输入的方法、一些新的措辞构造等。
Ø 从PHP 5开始支持面向工具
PHP 5经由永劫光的开拓及多个预发布版本后,于2004年7月发布正式版本。其核心是Zend引擎2代,引入了新的工具模型和大量新功能,可以利用面向工具的思想进行编程,这也是PHP在编程领域的又一个新的打破。虽然PHP 5.0没有带来本色性的性能提升,并且在某些情形下乃至比PHP 4更慢,一个由Dmitry Stogov 领导的团队在社区的大力帮助下已经在后续版本中不断优化措辞,在 PHP 5.6 发布的时候,在大多数情形下,性能提升在1.5和3倍之间。
Ø 实在PHP 6是个失落败的版本
PHP 6的开拓开始于2005年,曾想要让PHP支持Unicode字符串。由于PHP 6的开拓进展过于缓慢又涌现了很多的问题,并且开拓结束不前,导致PHP 6在2010年被取消了。实在PHP 6很少有人用过,在没有新的版本涌现之前,还一贯在利用PHP 5。
Ø 寄希望于下一代的PHP NG分支
由于PHP 6的分支被占用了,不久后Zend的Dmitry Stogov发布了PHP的一个名为PHPNG(PHP Next-Gen)的分支。PHP NG(也可称为PHP 5.7)关键是仍保持对PHP 5.6的兼容性,在2014年1月中旬首次发布,并在同年5月初又再次进行里程碑式的更新,并对PHP速率的提升有着越来越多的思路。到了同年7月中旬,这些努力终于有了却果,测试表明开拓中的版本性能比拟PHP 5.6有着近乎1倍的提升。在渲染 WordPress 3.6前端页面上进行的测试,同样的页面,PHP 5.6渲染1000次耗时26.756秒,而PHP NG耗时14.810秒。这次性能提升的窍门在于将近60%的CPU指令被更换成更高效的代码。PHP 5.6实行100次渲染须要9 413 106 833个CPU指令,而PHP NG 只需3 627 440 773 指令。
2.4.3 PHP的现在
现在是PHP 7的时期,2015年12月PHP 7.0版本的发布取得了重大打破,同时将带来大幅的性能改进和新的特性,以及改进一些过期的功能。该发布版本将会专注在性能加强,源自PHP版本树中的PHP NG分支。到本书发稿时,PHP 7有3个功能版本,分别是7.0.x,7.1.x,7.2.x,目前新开拓的PHP项目都已经开始利用PHP 7这个版本。相对付之前的版本紧张是性能上进行了提升,官方公布的数据性能可以提升一倍,PHP 7.1.x更多地是对7.0.x未完成的事情的一个补充,做的最大的改进便是增加了一个类型推断系统加一个类型干系的中间代码实行引擎。目前的最高版本是PHP 7.2.x,相对付 PHP 7.1.x版本紧张优化是在 OPcache(通过将 PHP 脚本预编译的字节码存储到共享内存中,以此来提升 PHP 的性能,存储预编译字节码的好处便是省去了每次加载和解析 PHP 脚本的开销,在PHP 5.5往后的版本引入)。
2.4.4 PHP的未来
作为老牌的Web后端编程措辞,PHP在环球市场的霸占率非常高,仅次于Java,从各个招聘网站的数据上来看PHP 开拓的职位非常多,薪资水平也非常不错。实际在中小企业、互联网创业公司,PHP的市场地位是高于Java的。Java在超大型企业、传统软件行业、金融领域的上风更大。目前来看,Node.js、Go、Python、Ruby 等措辞还难以企及PHP和Java。在Web开拓中PHP是王者,现在运用终端多方面发展,互联网用户爆发式增长,如今不否认PHP 在有些地方存在欠缺,比如微做事的构建、常驻内存的做事级系统、密集打算、大数据的生态构建等。
PHP措辞入门大略,随意马虎节制,程序健壮性好,不随意马虎涌现像Java、C++等其他措辞那样繁芜的问题。PHP官方供应的标准库非常强大,各种功能函数都能在官方的标准库中找到,包括MySQL、Memcache、Redis、GD图形库、CURL、XML、JSON等,免除了开拓者到处找库的烦恼。PHP的文档非常棒,每个函数都有详细的解释和利用示例。第三方类库和工具、代码、项目也很丰富。开拓者可以快速、高效地利用PHP编写和开拓各种软件。到目前为止,市情上仍旧没有涌现过比PHP更大略易用的编程措辞。以是PHP的前景还是很广阔的,与其纠结于编程措辞的选择,不如好好地深入学习利用PHP。