本文基于《PHP 內核剖析》與 《PHP7底層設計與源碼實現(xiàn)》所記筆記。
對PHP內核的深入理解有助于我們對PHP的整體認識,對于業(yè)務層初期發(fā)展我們可以只了解基本語言的邏輯就可以寫出符合業(yè)務的代碼,但是隨著業(yè)務的發(fā)展我們通過分析源碼,編寫擴展,深入了解PHP內部機制,幫助我們理解PHP內部實現(xiàn)邏輯,更好助力業(yè)務發(fā)展.
執(zhí)行流程
從上圖中看出主要從解析PHPCode到執(zhí)行主要經過了四個階段.
獲取token可以通過Token_get_all('?php echo "str";>')函數(shù)獲取token信息.
抽象語法樹主要將解釋器和編譯器進行解耦.
opcodes最終執(zhí)行的指令,例如ZEND_ECHO:本質還是一個對應的C函數(shù).
架構結構
Zend層為上層的PHP層提供一些基礎的內存管理以及數(shù)據結構等.
SAPI層為最上層和Server進行通信,封裝了不同的通信類型,cgi,fast-cgi,cli等.
目錄結構
sapi
存放根據不同環(huán)境支持的上層API交互形式,實現(xiàn)了不同的輸入輸出形式.
Zend
存放PHP相關的核心代碼,如前所述內存管理等.
main
負責與Zend層交互的入口,還有一些鉤子函數(shù).
ext
主要是擴展相關的目錄.通過ext_skel命令生成自定的模塊.會默認安裝到這個目錄.
TSRM
線程資源管理相關的目錄,一般只有和Apache結合使用時會涉及到線程資源管理相關的代碼.
與Nginx相關的一般只會用到FastCGI協(xié)議不涉及到TSRM模塊.
到此這篇關于php之深入理解架構布局講解的文章就介紹到這了,更多相關php之深入理解架構布局內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- PHP程序員簡單的開展服務治理架構操作詳解(三)
- PHP程序員簡單的開展服務治理架構操作詳解(二)
- PHP程序員簡單的開展服務治理架構操作詳解(一)
- PHP數(shù)據源架構模式之表入口模式實例分析
- PHP架構及原理知識點詳解
- thinkPHP5.0框架整體架構總覽【應用,模塊,MVC,驅動,行為,命名空間等】
- php代碼架構的八點注意事項
- 四種php中webservice實現(xiàn)的簡單架構方法及實例