明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習分享的學(xué)習平臺!

PHP4的核心:Zend (轉(zhuǎn)載自奧索)

[摘要]PHP4的核心:Zend臺灣彭武興先生寫的專題《PHP4的核心:Zend》。雖然是去年寫的,但覺得有助于對PHP/Zend有個概念上的認識。所以翻譯出來。第一次知道,原來Zend引擎的名稱由Zeev Suraski和Andi Gutmans二位在PHP擔任核心開發(fā)工作的資深設(shè)計師的名字合體. 作者...
PHP4的核心:Zend

臺灣彭武興先生寫的專題《PHP4的核心:Zend》。雖然是去年寫的,但覺得有助于對PHP/Zend有個概念上的認識。所以翻譯出來。第一次知道,原來Zend引擎的名稱由Zeev Suraski和Andi Gutmans二位在PHP擔任核心開發(fā)工作的資深設(shè)計師的名字合體.

作者:彭武興 介紹:他架設(shè)過臺灣文化大學(xué)華岡資訊網(wǎng),畢業(yè)后任職NEC擔任網(wǎng)管,及BIGLOBE的網(wǎng)管.并曾在網(wǎng)際空間雜志開過網(wǎng)際字解專欄,發(fā)表文章.在互聯(lián)網(wǎng)方面特別是有關(guān)WEB方面,有著深入的研究與實作經(jīng)驗.目前任職于訊達電腦負責網(wǎng)絡(luò)的相關(guān)工作.著有《PHP圣經(jīng)》。

一.概述:
Zend引擎的名稱由Zeev Suraski和Andi Gutmans二位在PHP擔任核心開發(fā)工作的資深設(shè)計師的名字合體.開發(fā)的目的師為了研發(fā)新的腳本執(zhí)行機制,而PHP4就是這套嶄新的Zend引擎的第一個實作產(chǎn)品。在一些特殊測試環(huán)境下,Zend(PHP$)的執(zhí)行速度比PHP3及ASP快了幾倍到幾百倍之多,這也意味著網(wǎng)站的后端CGI界面的統(tǒng)一者非PHP4?Zend莫屬了。(當然,技術(shù)是不斷進步的,說不定哪一天又出現(xiàn)了新的引擎。)

Zend引擎在研發(fā)二年多之后,已經(jīng)變成類似VBA功能的廣義程式環(huán)境,它不但有傳統(tǒng)的PHP函數(shù)功能,更增加了分散式物件(COM)的功能,并且能夠在不同的操作平臺上執(zhí)行。以這種潛力發(fā)展下去,VBA的終結(jié)者非Zend莫屬。

Zend在PHP4上實作時更針對了PHP3之前最大缺憾的session做了最完整的承諾,同時加入了一些未來的功能,如CyberCash...等等。

在opensource社群中,唯一能保持聲勢,卻又尚未被微軟公司視為競爭對手的,PHP/Zend是最好的例子。它已經(jīng)完全地將ASP丟到了身后,正往VBA的環(huán)境發(fā)展。而微軟只全力對付Linux,沒有注意到來自PHP/Zend的威脅。
系統(tǒng)圖示:

使用者的瀏覽器發(fā)出瀏覽請求,Web服務(wù)器接收請求。

Web服務(wù)器發(fā)覺是PHP的要求,需要PHP引擎解析(根據(jù)文件的擴展名),于是將它送到PHP4的Zend引擎上。

Zend引擎將文件從硬盤上讀取,送到Zend線上編譯器(Run-time Compiler),進行程序直譯工作。(或許日后的Zend Compiler出來以后可以省略線上編譯工作。)

Zend引擎的線上執(zhí)行單元(Excutor)執(zhí)行編譯過的PHP程序。并在需要時找相關(guān)的模組執(zhí)行協(xié)力動作(如XML,IMAP,ODBC...等等)。

Zend將執(zhí)行后的結(jié)果整理成HTML文件,送給Web服務(wù)器。

Web服務(wù)器將結(jié)果通過網(wǎng)絡(luò),傳回使用者的瀏覽器。


目前的Zend產(chǎn)品有下列四種:

Zend Engine:Zend引擎 Zend引擎目前只做出PHP4一種產(chǎn)品,提供類似微軟的VBA及跨平臺的功能。而目前在網(wǎng)絡(luò)上的流行,也為Zend引擎作了最佳的見證。在Zend的四大產(chǎn)品中,這是目前唯一成熟的產(chǎn)品。

Zend Optimizer:Zend極限器 將PHP的核心重新調(diào)整,讓PHP程序執(zhí)行的效率更高。主要能加快PHP代碼的執(zhí)行速度及降低CPU的負擔,將潛伏時間減少。

Zend Cache:Zend快取 將PHP程序快取到Web服務(wù)器的記憶體中,讓系統(tǒng)不用再一直從硬盤讀取PHP程序,可大幅度縮短系統(tǒng)的反應(yīng)時間,降低網(wǎng)絡(luò)的負荷。存在Cache的資料甚至可以不用再直譯過,減少處理的資源。

Zend Compiler:Zend編譯器 這恐怕是Zend的最終極武器,它可讓PHP的程序代碼經(jīng)過編譯后,以Zend中間碼(ZIC,Zend Intermediate Code)的形式存在?梢员WoPHP的源代碼,不讓使用者看到,讓PHP的源代碼有安全保障。預(yù)料本產(chǎn)品出現(xiàn)之后,將對整個網(wǎng)絡(luò)產(chǎn)生不小的影響,PHP碼的物件庫,將會到處可見,軟件業(yè)也會提供相關(guān)的函數(shù)庫或物件庫給PHP編程者。屆時,可能會有PHP大戰(zhàn)Java的情形。

原作者:Hitz