PHP4的核心:Zend (转载自奥索)

PHP4的核心:Zend

台湾彭武兴先生写的专题《PHP4的核心:Zend》。虽然是去年写的,但觉得有助于对PHP/Zend有个概念上的认识。所以翻译出来。第一次知道,原来Zend引擎的名称由Zeev Suraski和Andi Gutmans二位在PHP担任核心开发工作的资深设计师的名字合体.

作者:彭武兴 介绍:他架设过台湾文化大学华冈资讯网,毕业后任职NEC担任网管,及BIGLOBE的网管.并曾在网际空间杂志开过网际字解专栏,发表文章.在互联网方面特别是有关WEB方面,有着深入的研究与实作经验.目前任职于讯达电脑负责网络的相关工作.著有《PHP圣经》。

一.概述:
  Zend引擎的名称由Zeev Suraski和Andi Gutmans二位在PHP担任核心开发工作的资深设计师的名字合体.开发的目的师为了研发新的脚本执行机制,而PHP4就是这套崭新的Zend引擎的第一个实作产品。在一些特殊测试环境下,Zend(PHP$)的执行速度比PHP3及ASP快了几倍到几百倍之多,这也意味着网站的后端CGI界面的统一者非PHP4?Zend莫属了。(当然,技术是不断进步的,说不定哪一天又出现了新的引擎。)

  Zend引擎在研发二年多之后,已经变成类似VBA功能的广义程式环境,它不但有传统的PHP函数功能,更增加了分散式物件(COM)的功能,并且能够在不同的操作平台上执行。以这种潜力发展下去,VBA的终结者非Zend莫属。

  Zend在PHP4上实作时更针对了PHP3之前最大缺憾的session做了最完整的承诺,同时加入了一些未来的功能,如CyberCash...等等。

  在opensource社群中,唯一能保持声势,却又尚未被微软公司视为竞争对手的,PHP/Zend是最好的例子。它已经完全地将ASP丢到了身后,正往VBA的环境发展。而微软只全力对付Linux,没有注意到来自PHP/Zend的威胁。
系统图示:

使用者的浏览器发出浏览请求,Web服务器接收请求。

Web服务器发觉是PHP的要求,需要PHP引擎解析(根据文件的扩展名),于是将它送到PHP4的Zend引擎上。

Zend引擎将文件从硬盘上读取,送到Zend线上编译器(Run-time Compiler),进行程序直译工作。(或许日后的Zend Compiler出来以后可以省略线上编译工作。)

Zend引擎的线上执行单元(Excutor)执行编译过的PHP程序。并在需要时找相关的模组执行协力动作(如XML,IMAP,ODBC...等等)。

Zend将执行后的结果整理成HTML文件,送给Web服务器。

Web服务器将结果通过网络,传回使用者的浏览器。

目前的Zend产品有下列四种:

Zend Engine:Zend引擎 Zend引擎目前只做出PHP4一种产品,提供类似微软的VBA及跨平台的功能。而目前在网络上的流行,也为Zend引擎作了最佳的见证。在Zend的四大产品中,这是目前唯一成熟的产品。  

Zend Optimizer:Zend极限器 将PHP的核心重新调整,让PHP程序执行的效率更高。主要能加快PHP代码的执行速度及降低CPU的负担,将潜伏时间减少。  

Zend Cache:Zend快取 将PHP程序快取到Web服务器的记忆体中,让系统不用再一直从硬盘读取PHP程序,可大幅度缩短系统的反应时间,降低网络的负荷。存在Cache的资料甚至可以不用再直译过,减少处理的资源。  

Zend Compiler:Zend编译器 这恐怕是Zend的最终极武器,它可让PHP的程序代码经过编译后,以Zend中间码(ZIC,Zend Intermediate Code)的形式存在。可以保护PHP的源代码,不让使用者看到,让PHP的源代码有安全保障。预料本产品出现之后,将对整个网络产生不小的影响,PHP码的物件库,将会到处可见,软件业也会提供相关的函数库或物件库给PHP编程者。届时,可能会有PHP大战Java的情形。  

原作者:Hitz

时间: 2024-11-05 14:49:33

PHP4的核心:Zend (转载自奥索)的相关文章

初学者入门:细述PHP4的核心Zend

一.概述: Zend引擎的名称由Zeev Suraski和Andi Gutmans二位在PHP担任核心开发工作的资深设计师的名字合体.开发的目的师为了研发新的脚本执行机制,而PHP4就是这套崭新的Zend引擎的第一个实作产品.在一些特殊测试环境下,Zend(PHP$)的执行速度比PHP3及ASP快了几倍到几百倍之多,这也意味着网站的后端CGI界面的统一者非PHP4 Zend莫属了.(当然,技术是不断进步的,说不定哪一天又出现了新的引擎.) Zend引擎在研发二年多之后,已经变成类似VBA功能的广

初学者入门:细述PHP4的核心Zend_php基础

   Zend引擎的名称由Zeev Suraski和Andi Gutmans二位在PHP担任核心开发工作的资深设计师的名字合体.开发的目的师为了研发新的脚本执行机制,而PHP4就是这套崭新的Zend引擎的第一个实作产品.在一些特殊测试环境下,Zend(PHP$)的执行速度比PHP3及ASP快了几倍到几百倍之多,这也意味着网站的后端CGI界面的统一者非PHP4 Zend莫属了.(当然,技术是不断进步的,说不定哪一天又出现了新的引擎.)    Zend引擎在研发二年多之后,已经变成类似VBA功能的广

PHP界的大事:zend已经可以破解

10月4日,国内有一家名为清风工作室的网站推出一款名为deZender的软件,据他们说"deZender可以反编译被zend编译过的所有 PHP代码,由deZender产生的PHP源代码同原始文件相比,在源代码级有超过95%以上的一致率,除极少数特殊情况外,无需经过任何修改,即能正确运行并实现与原始文件完全相同的功能.deZender能100%地还原PHP的变量名.函数名.类名.属性名.方法名,甚至函数的参数名." 这个消息引起了众多php爱好者的关注,到目前为止,已经有上百个朋友在他

php版本历史

php最初就是为了快速构建一个web页面而迅速被大家广为接受的.它的好处是在代码中能内嵌html的代码,从而让程序员能再一个页面中同时写html代码和php代码就能生成一个web页面.   这篇文章用时间轴的角度来记录一下php的历史.   PHP版本历史 1995年初   PHP1.0诞生   Rasmus Lerdof发明了PHP,这是简单的一套Perl脚本,用来跟踪访问者的信息.这个时候的PHP只是一个小工具而已,它的名字叫做"Personal Home Page Tool"(个

PHP新手上路(二)

2. 竞争对手:ASP,mod_perl,JSP 用于实现交互式动态网页的技术有好多,其中CGI又称通用网关接口(Common Gateway Interface),是外部程序和WEB服务器之间的标准编程接口,但是CGI程序带来的缺点实在太多:而Perl很好地解决了CGI中的问题,被用来驱动复杂的WEB技术:微软的ASP(Active Server Pages)的出现,以它容易上手.轻松编写程序和微软件强有力的支持后盾使得ASP一下子成了许专业编程人员和非专业编程人员的宠儿:Middle war

新手:什么是PHP?网站开发为什么选择PHP?

PHP教程 PHP初学者教程 什么是PHP 为什么选PHP 一.什么是PHP?PHP的概念和简介 PHP是一种易于学习和使用的服务器端脚本语言.只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点.本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列.我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想.网页教学网webjx.com 1.简介 PHP是能让你生成动态网页的工具之一.PHP代表:超文本预处理器(PHP: Hypertext Pre

PHP新手上路(二)_php基础

为什么要选择PHP 2. 竞争对手:ASP,mod_perl,JSP 用于实现交互式动态网页的技术有好多,其中CGI又称通用网关接口(Common Gateway Interface),是外部程序和WEB服务器之间的标准编程接口,但是CGI程序带来的缺点实在太多:而Perl很好地解决了CGI中的问题,被用来驱动复杂的WEB技术:微软的ASP(Active Server Pages)的出现,以它容易上手.轻松编写程序和微软件强有力的支持后盾使得ASP一下子成了许专业编程人员和非专业编程人员的宠儿:

白刃之战:PHP vs. ASP.NET(节选)-架构比较_实用技巧

   作者:Robert Lair and Jason Lefebvr Intensity Software, Inc.   翻译:EasyChen Exlcsoft.com   概观   开发界正在进行的一个争论是PHP和ASP中哪一个平台更适合网站开发.这场争论由于微软的ASP.net带来的巨大变化而进入了新时期.和ASP 3.0比起来,ASP.NET采用了全新的设计,有着很多新的特性和优点.究竟ASP.NET 会给PHP和ASP之间的争论带来什么样的影响呢?本文将为你提供这个问题的答案的相

锋利的jQuery--Ajax(读书笔记四)

1.表单值得序列化 <1>serialize() 例子: html: <form action=""> First name: <input type="text" name="FirstName" value="Bill" /><br /> Last name: <input type="text" name="LastName"