欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

新版PHP将向Java靠拢

程序员文章站 2022-12-19 11:37:04
所谓的“php”就是开放源码的web应用开发/运行环境,日前《日经open system》记者就今后php开...

所谓的“php”就是开放源码的web应用开发/运行环境,日前《日经open system》记者就今后php开发中心的发展计划等问题采访了该中心成员zeev suraski。zeev suraski表示,新版php中将导入try、catch等语句,从而更接近java,以便更容易地进行大型系统的开发。(采访者:高桥 信赖)

--请您谈一下决定开发php的起因。

rasmus lerdorf于1995年首先公布了php。1997年我在制作以色列大学网页及网上商店站点时,使用了当时名为php/fi(personal home page/form interpreter)的工具,这时才开始接触到php。在使用的过程中,发现了一个很大的bug。由于源码是公开的,所以我对bu*生的原因进行了调查并做了修改,在调查中发现还有很大的改进余地。于是就和当时共同做项目的andi gutmans一起对php/fi脚本执行引擎进行了修改。修改后的执行引擎交给lerdorf后,就成了新版php3.0的正式执行引擎。

通过改进脚本执行引擎,我们开发出了速度更高的zend engine。zend这个名字是zeev与andi的组合。嵌入了zend engine的php就是目前的版本php4。原来的程序是边读入边解释来执行,后来改成了每个执行周期解释一次 ,因此执行100个周期就要进行100次同样的解释处理。而zend engine则是一开始就对整个文件的脚本进行解释 ,然后再开始执行。由于大幅削减了解释过程,所以执行速度得以大幅提高。

php4在发表后2个月内就被下载了26万5000次。据美国调查公司netcraft统计,目前php至少被安装在600万个域名服务器上。

我想php受到人们欢迎的最主要原因就是简单实用。曾有人在给我的邮件中表示:“尽管没有编程经验,但我使用php仅用3个小时就写出了简单的程序”。使用java就达不到这种程度。此外,php是针对www开发的,因此,还可以方便地处理cookie与表单。

php是免费的,今后仍将继续免费发布,但考虑到商业成本与支持产品的要求,于1999年设立了以色列zend,并开发出高速php软件及综合开发工具进行销售。

--预定2002年底发布的新版php5中,准备扩展哪些功能?

将进一步改进面向对象功能,使大型系统的开发更加容易。尽管php已经具有类与子类等,但php5会更接近java。将引入了try、catch等java具有的特殊处理语句结构。

在php4中,函数作为变量使用,即使给出一个对象也不会发生变化。php可以标准赋值,对象也可以赋值,所以函数值并非对象本身,而是一个拷贝过来的值。当函数需要变更为对象数值时,就要在作为变量的对象前加上“&”符号来专门提示。在java中不需要这样的提示,而php5则采用的是与java相同的模式。

此外,php5还导入了名称空间(name space),名称空间确定后,函数、变量、类名的有效范围均被限制在名称空间内。当清楚名称范围后,在使用变数与函数名时就可以忽略重复的名称,这也方便了大型程序的开发。

名为“stream”的新功能也是一项便利的功能。它可以使www服务器与ftp服务器上的文件与本地文件使用同样的函数。也就是说,fopen(本地文件名)可以像fopen(hppt://主机名/文件名)一样使用。压缩文件可像普通的非压缩文件一样处理。而且不用等到php5,在以后发布的php4中就将安装上“stream”。

--有人指出,由于php为html嵌入型,和java一样难以将显示(presentation)与逻辑部分分离,难以实现模块化。

事实上,使用php完全能够分离显示与逻辑部分。php有一项调出java对象的功能。可以将php作为显示层、将java对象作为逻辑层使用。

另一个方法就是使用模板库smarty的方法。smarty是一个从html模板动态生成html的工具。即便html中完全没有写入php逻辑,也可以生成符合html的php运行结果。

尽管如此,也并不是说在任何情况下分离显示与逻辑都是有利的。比如在开发小型系统时,分离后反而变得更复杂,很难对整体进行把握,最终影响开发效率,这就是缺点所在。

--2002年2月底,php曾被发现存在严重的安全漏洞。

php在5年时间里都没有出现过严重的安全漏洞,但不幸在2月底发现文件上传功能存在问题。

我们认为安全性至关重要,并对此采取了2项措施:首先,在接到安全漏洞报告的30个小时内制作并公布了补丁。哪种软件也不能保证绝对不会出现安全漏洞。今后如发现有严重安全漏洞,我们仍将会倾尽全力、迅速采取补救措施。

其次,我们已经开始检查php的源码,展开了安全检查。即使不是自身的安全漏洞,也要对可能出现问题的部分进行检查并进行修正。