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服务器将结果通过网络,传回使用者的浏览器。