1. 程式人生 > >PHP底層工作原理 [轉]

PHP底層工作原理 [轉]

PHP底層工作原理

圖(1)  php結構

從圖上可以看出,php從下到上是一個4層體系

①Zend引擎

Zend整體用純c實現,是php的核心部分,它將php程式碼翻譯(詞法、語法解析等一系列編譯過程)為可執行opcode的處理並實現相應的處理方法、實現了基本的資料結構(如hashtable、oo)、記憶體分配及管理、提供了相應的api方法供外部呼叫,是一切的核心,所有的外圍功能均圍繞zend實現。

②Extensions

圍繞著zend引擎,extensions通過元件式的方式提供各種基礎服務,我們常見的各種內建函式(如array系列)、標準庫等都是通過extension來實現,使用者也可以根據需要實現自己的extension以達到功能擴充套件、效能優化等目的(如貼吧正在使用的php中間層、富文字解析就是extension的典型應用)。

③Sapi

Sapi全稱是Server Application Programming Interface,也就是服務端應用程式設計介面,sapi通過一系列鉤子函式,使得php可以和外圍互動資料,這是php非常優雅和成功的一個設計,通過sapi成功的將php本身和上層應用解耦隔離,php可以不再考慮如何針對不同應用進行相容,而應用本身也可以針對自己的特點實現不同的處理方式。後面將在sapi章節中介紹

④上層應用

這就是我們平時編寫的php程式,通過不同的sapi方式得到各種各樣的應用模式,如通過webserver實現web應用、在命令列下以指令碼方式執行等等。

 

構架思想:

引擎(Zend)+元件(ext)的模式降低內部耦合

中間層(sapi)隔絕web server和php

**************************************************************************

如果php是一輛車,那麼

車的框架就是php本身

Zend是車的引擎(發動機)

Ext下面的各種元件就是車的輪子

Sapi可以看做是公路,車可以跑在不同型別的公路上

而一次php程式的執行就是汽車跑在公路上。

因此,我們需要:效能優異的引擎+合適的車輪+正確的跑道