PHP的架構(gòu)布局涉及多個層次,讓我們一起探討一下吧!??
- 執(zhí)行流程:解析為Token:將PHP代碼解析成標(biāo)記(tokens)。抽象語法樹:將語法解析樹轉(zhuǎn)換為抽象語法樹。Opcodes:將抽象語法樹轉(zhuǎn)換為操作碼(opcodes)。執(zhí)行:執(zhí)行操作碼。
- 架構(gòu)結(jié)構(gòu):Zend層:為上層的PHP提供基礎(chǔ)的內(nèi)存管理和數(shù)據(jù)結(jié)構(gòu)。這是PHP的核心層。
- SAPI層:與服務(wù)器進行通信,封裝了不同的通信類型,如CGI、FastCGI和CLI。
- 目錄結(jié)構(gòu):sapi:存放根據(jù)不同環(huán)境支持的上層API交互形式,實現(xiàn)了不同的輸入輸出形式。
- Zend:存放PHP相關(guān)的核心代碼,包括內(nèi)存管理等。
- main:負(fù)責(zé)與Zend層交互的入口,還有一些鉤子函數(shù)。
- ext:主要是擴展相關(guān)的目錄,通過ext_skel命令生成自定義模塊,會默認(rèn)安裝到這個目錄。
- TSRM:線程資源管理相關(guān)的目錄,一般只有和Apache結(jié)合使用時會涉及到線程資源管理相關(guān)的代碼。