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
新闻热点
疑难解答