PHP底層設(shè)計及執(zhí)行流程

php是一門應(yīng)用專一,開發(fā)效率極高的一門語言,其弱類型的變量能省去程序員大量的定義變量、類型轉(zhuǎn)換等的時間和精力。它是一種適用于web開發(fā)的動態(tài)語言。

php設(shè)計的原理和特點

多進程模型:這樣能做到進程間互相不受影響,對于進程的資源利用更快速、便捷

弱類型語言:和強類型語言C、C++、java等語言不同,php中變量的類型并不是一開始就確定的,而是在運行時才確定的,可以隱式或顯式的對其進行類型轉(zhuǎn)換,這就使其在開發(fā)中非常的靈活,程序員無需關(guān)注變量類型的問題。

Zend引擎+ 組件(ext)的模式降低內(nèi)部的耦合。

中間層(sapi)隔絕web

server 和php。

語法簡單靈活,規(guī)范少,有利有弊。


層級體系

Zend引擎:Zend整體用C實現(xiàn),是php的內(nèi)核部分,它將php的代碼翻譯成可執(zhí)行的opcode的,處理并實現(xiàn)相應(yīng)的處理方法(原理:鳥哥的博客)、實現(xiàn)了基本的數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配及管理、提供了相應(yīng)api方法供外部使用,是一切的核心。

Extensions:圍繞著Zend引擎,extensions通過組件的方式提供各種基礎(chǔ)服務(wù),常用的內(nèi)置函數(shù)array、標(biāo)準(zhǔn)庫等都是通過extension來實現(xiàn)的,用戶也可以根據(jù)需要實現(xiàn)自己的extension以達到功能擴展等目的如貼吧正在使用的 PHP中間層、富文本解析就是extension的典型應(yīng)用)。

Sapi:Sapi全稱Server Application Programing Interface, 也就是服務(wù)端應(yīng)用編程接口,Sapi通過一些列鉤子函數(shù),使php可以和外圍交互數(shù)據(jù),這是PHP非常優(yōu)雅和成功的一個設(shè)計,通過 sapi成功的將PHP本身和上層應(yīng)用解耦隔離,PHP可以不再考慮如何針對不同應(yīng)用進行兼容,而應(yīng)用本身也可以針對自己的特點實現(xiàn)不同的處理方式。

上層應(yīng)用:這就是程序員編寫的應(yīng)用程序,通過不同的sapi方式得到各種各樣的應(yīng)用模式,如通過webserver實現(xiàn)web應(yīng)用,在命令行下以腳本的方式運行等等

Sapi通過一些列的接口,使外部應(yīng)用可以和php交換數(shù)據(jù)并可以根據(jù)不同的應(yīng)用特點實現(xiàn)特定的處理方法,常見的sapi有:

apache2handler:以apache作為webserver,采用MOD_PHP模式運行時候的處理方式,也是現(xiàn)在應(yīng)用最廣泛的一種

cgi:這是webserver和php的另外一種交互方式,也就是fastcgi協(xié)議

cli:命令調(diào)試應(yīng)用模式


待續(xù)。。。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容