13426109659
webmaster@21cto.com

PHP 8.x概述

章节 1/3 | 学习时间: 3 最小
PHP 8.x概述

什么是PHP语言

PHP全称为“PHP Hypertext Preprocessor”,超文本预处理器之意。

PHP被人们称为“世界上最好的语言”,这里有一些是玩笑的成份。它是一种流行的编程语言,运行于服务器端,广泛应用于Web网站、内容管理系统、API通信、小程序及系统监测等系统的开发。

PHP从诞生到现在,已历经三十多个年头的时光洗涤,在开发者的挑剔及业界巨头的挑战中,依然保持青春的笑容,充满昂扬的斗志而砥砺精进,不断地增强升级,每一个版本的更新都带给人们众多惊喜。

PHP官方网站(https://www.php.net,如图1-1)向PHP开发者提供需要的信息,包括未来新版本的特性以及当前版本发布日期等。

您在该站点中还可以找到其它有用的,如相关文档、手册、组件下载以及相关PHP技术活动、会议等信息。


图1-1 PHP官方网站(https://www.php.net


PHP的发展简史

1.PHP/FI

PHP诞生于1994年,由时年17岁的丹麦籍程序员拉斯穆斯·勒多夫(Rasmus Lerdorf)所创建。

拉斯姆斯·勒多夫于1968年11月22日出生在丹麦格陵兰岛西部迪科斯岛的Godhavn/Qeqertarsuaq,后入加拿大籍。他是一位演讲家、架构师以及PHP语言的创始人。


图1-2 PHP作者拉斯姆斯·勒多夫(Rasmus Lerdorf)


勒多夫在上世纪90年代早期维护过新闻卫星通讯系统,并设计了用于验证数据正确性的错误验证协议。然后他还在1991年获得了2项加拿大的专利。在1991-1993,他做了近3年的Unix程序员,并成功地开发出了一个面向对象接口生成器。在1994年,勒多夫担任产品负责人,主持并设计了很多基于Unix的通讯、GUI等系统。

他编写了PHP前两个版本,并参与领导PHP更高版本的开发。勒多夫在知名的门户网站雅虎(Yahoo!)工作了十多年,后来在Etsy和WebPay担任首席软件架构师。

从二十世纪九十年代开始,Web应用程序均按CGI(Common Gateway Interface,通用网关接口)标准编写。CGI是1993年11月4日由NCSA Mosaic组织制定并颁布的标准,其规定了相关细节,它允许Web服务器连接到高级编程语言来生成动态网页,最初实现的只有Perl和C语言。

PHP的首个版本使用Perl语言编写,用在勒多夫的个人主页上,记录访客并与其互动,包括留言板、用户验证、数据统计和数据存储。1995年,勒多夫将这个产品命名为Personal Home Page Tools/Form Interpreter,意为“个人主页工具/表单解释器”,简称为PHP/FI。


图1-3 PHP/FI的源代码


随着访问勒多夫个人网站的访客逐渐增多,网站响应速度开始变慢,这是由于CGI的技术限制所致,它每次运行都会创建一个新进程,导致服务器内存占用越来越多,后来内存溢出导致服务器宕机。

勒多夫后来用C语言重写了PHP/FI内核,实现了与数据库的交互,包括新的语法结构,支持变量、条件与循环语句,支持自定义函数,这个内核被他命名为PHP 2.0。

PHP 2.0性能比PHP/FI快了不少,除了借鉴Perl的变量命名、表单处理等特性,它还具备嵌入到HTML中运行的能力,这也是PHP之后区别于其它Web开发语言的独特之处。

勒多夫意识到Linux等开源软件的优势和潜力,遂决定也将PHP开源。接着他就到开发者聚集的新闻组、邮件列表等渠道宣布PHP内核完全开源,包括内核代码和文档,希望让更多的人利用它来建立动态网站和Web应用,让Web开发效率更高。

1997年11月,PHP/FI 2.0正式发布并提供给公众开放下载。在接下来的时间里,用PHP构建的网站增长到5万多个。此时有一些开发者开始参与其中,人们帮助勒多夫一起完善功能与扩展,Lerdorf仍按既定的开源模式与来自全世界的志愿们一起协同工作。

在PHP 2.0发布的同一个月,两位来自以色列理工学院的大学生安迪·古特曼斯(Andi Gutmans)和泽夫·苏拉斯基(Zeev Suraski)开始与勒多夫深度合作,三人协同完成了PHP 2.0的内核开发。后来两人接手勒多夫的一部分工作,负责构建和升级PHP内核的任务。

为了减少旧名称中的一些模糊和歧义,重新构建的语言仍沿用PHP的名字,按照开源GNU协议重新修正了PHP的正式全称:“PHP Hypertext Preprocessor”,即超文本预处理器。

正所谓“名正言顺”,PHP至此正式步入主流编程语言行列。这与后加入的两位年轻力量功不可没。

泽夫·苏拉斯基(Zeev Suraski)生于1976年,以色列籍程序员,毕业于以色列理工学院,他是PHP内核引擎Zend Engine的主要开发者,除了创建Zend Technologies, 他还是Apache Software Foundation的成员,并获得Free Software Foundation(自由软件基金会)之自由软件进步奖提名。


图1-4 PHP 3.0创始人之一泽夫·苏拉斯基(Zeev Suraki)


安迪·古特曼斯(Andi Gutmans)生于1976年,为瑞士籍犹太程序员。


图1-5 PHP 3.0的创始人安迪·古特曼斯(Andi Gutmans)


古特曼斯和苏拉斯基二人接棒勒多夫后,开始着手重写内核,并将版本号定义为3.0,简称为PHP3。

从此,PHP的开发维护从勒多夫一个人,变成以他为首,加上古特曼斯和苏拉斯基以及斯蒂格·巴肯(Stig Bakken)、肖恩·卡维奥(Shane Cavaveo)、吉姆·温斯特德(Jim Winstead)等位于全球不同地区的超级极客组成开发团队,称之为PHP小组(The PHP Group)。


2.PHP3

PHP3在公开测试9个月后,于1998年6月6日发布正式版。

PHP3增加了一些实用扩展模块,具备更健壮底层架构,开始提供面向对象语法支持,更强的数据库处理能力。由于PHP3整体运行速度更快,这使得PHP服务器部署量猛增,截止到1998年,使用PHP的网站约有500万个,超过80万以上独立IP,相当于当时世界10%以上的网站都用PHP作为主力语言。


3.PHP4

由于PHP3受到广泛欢迎,古特曼斯和苏拉斯基又冒出大胆的想法,两人决定重新构建PHP内核引擎,使其性能变得更好,能够支撑更复杂和健壮的应用,同时把基础应用模块化。

1999年,在以科技创新著称的以色列,一家名为Zend Technologies的科技公司诞生,同时它宣告即将发布PHP新内核,而这家公司的创始人正是古特曼斯和苏拉斯基,而Zend的名字源自Gutmans与Suraski名字的前半部分——Zeev和Andi。


图1-6 Zend.com官方网站

2000年5月22日,PHP4 以Zend Engine 1.0的新内核正式亮相。它除了提供更好的性能外,还支持更多类型的Web服务器,增加了会话管理、输入输出缓冲以及多系统支持等特性。此版本受益于世界各地数十位开发者的贡献,在全球扩展到20%的网站都开始使用PHP,例如Yahoo!、E-Trade、Craglist等大型互联网公司的产品,PHP开始成为Web开发的强劲动力之一。

2008年8月PHP发布4.4.9,此为 4.x的最终版本,在持续维护8年后被PHP5代替。


4.PHP5

虽然PHP4已经能够胜任绝大多数的Web应用,仍有为数不少的开发者“抱怨”说,PHP4在面向对象机制方面的欠缺,致使在开发大型企业级应用方面存在不足。

另外,脚本程序通常针对Web方式交互的用户,开发者还需要一种应用服务器(Application Server)的功能,就是让PHP可以脱离浏览器,在命令行或工作台下也可以运行(short for Command Line Interface,CLI模式),而很多应用开发,需要在操作系统后台实现自动化的服务功能,这一需求在PHP5中得到了相应支持。

PHP 5.0在2004年7月正式推出,开始与PHP4并行过一段时间。经过一些大小功能修复,PHP 5.4稳定版于2012年8月发布。接下来的一年,2013年8月PHP 5.5发布,成为大多数平台的主版本。2018年4月26日,PHP 5更新至5.6.36版。

值的一提的是,从PHP5开始就有一些中国人参与其中,如PHP手册汉化的乔楚,OpCache的作者惠新宸以及异步多线程服务器Swoole作者韩天峰,另外国内知名的PHP框架ThinkPHP作者刘晨也是从2006年开始起步做基础开发,继而成为中国受欢迎的PHP框架之一。

PHP5系列是PHP的“革命性版本”,它的生命周期长达14年,此版本开发的应用软件所占比例也最多。但随着技术内外部环境的变化,PHP5也面临着安全、性能以及本身架构等多方面挑战,此版本的使命在2018年底正式完成。


4.PHP6

PHP 6早在2010年初开始以测试版本发布。它移除了PHP5向下兼容能力,添加了一些诸如命名空间等新特性。由于这些新特性在与PHP5.x的兼容方面存在一些问题,某些模块设计也不稳定,因此在开发者的口碑并不如PHP 5那么好。后来PHP小组索性将PHP6的一部分新功能回炉到了PHP 5.6。

PHP6一直处于Beta版状态,与PHP5并存了很多年。随着越来越多的特性转到了PHP 5.6,余下就是Unicode 内核和语法方面的改进,这似乎也变得不那么紧要,而且新特性需要开发者的编码习惯也需要慢慢调整,修改项目旧代码来适应PHP6也非一日之功,于是它彻底成为一个过渡性版本。

2011年上半年,这个名字的PHP彻底终止维护。


5. PHP7

2015年12月,PHP 7.0正式版发布。

在此之前,PHP5受到HHVM(全称为Hip Hop Virtual Machine)的强烈挑战,HHVM源自Facebook的内部项目,Facebook 最初完全使用PHP开发,后来成为全球最大的社交网站。由于每天有几亿级流量访问,性能成为它的最大瓶颈,于是其内部团队尝试改造PHP源码以打造新的解析引擎,它的机制是将PHP代码实时编译为中间码,然后再转换为x64位机器代码,以达到最佳性能。发现效果不错,后来Facebook就将HHVM开源,一度受到PHP开发者的追捧,如果不是代码兼容问题几乎快成了PHP的新分支。


图1-7 HHVM官方网站(hhvm.org)


受到HHVM 的“刺激”,PHP开发小组发誓要奋起,于是共同发起了称为“PHPNG (PHP Next-Gen)”的项目,这群极客们在该项目做了非常大的努力,特别是对PHP性能上做了非常大的提升。它内置新的Zend Engine、Zend OpCache、改进的垃圾处理GC、HugePage、PGO等特性,在语言层更加严谨规范。

辛苦和迭代没有白费,PHP 7.4版本成为一个新里程碑,该版本受到开发者的广泛赞誉,拿回了HHVM对PHP所产生的影响。


6. PHP8

PHP 8在2020年12月份正式发布。

除了加入FFI(Foreign Function Interface)、联合类型(Typed properties)、操作符匹配(Match Operator)等新特性,最值得一提的就是JIT编译器,它是Just in time缩写,运行时直接将代码编译为机器码。

2023年12月推出了PHP 8.3,其新特性包括联合类型变量,在语法严谨性和函数的一致性等方面进一步优化,并与现代编程语言在架构与体系上保持统一。

此外,PHP的应用开发框架、异步PHP、静态分析工具等现代级开发工具亦在不断完善,Laravel、Symfony、Zend以及ThinkPHP框架已经是成熟生态。