国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術(shù) > IOS開發(fā)

php之深入理解架構(gòu)布局講解

IOS開發(fā) 2023-02-16 22:20:35

本文基于《PHP 內(nèi)核剖析》與 《PHP7底層設(shè)計與源碼實現(xiàn)》所記筆記。
對PHP內(nèi)核的深入理解有助于我們對PHP的整體認識,對于業(yè)務(wù)層初期發(fā)展我們可以只了解基本語言的邏輯就可以寫出符合業(yè)務(wù)的代碼,但是隨著業(yè)務(wù)的發(fā)展我們通過分析源碼,編寫擴展,深入了解PHP內(nèi)部機制,幫助我們理解PHP內(nèi)部實現(xiàn)邏輯,更好助力業(yè)務(wù)發(fā)展.

執(zhí)行流程

php之深入理解架構(gòu)布局講解(圖1)

從上圖中看出主要從解析PHPCode到執(zhí)行主要經(jīng)過了四個階段.

獲取token可以通過Token_get_all('<?php echo "str";>')函數(shù)獲取token信息.

抽象語法樹主要將解釋器和編譯器進行解耦.

opcodes最終執(zhí)行的指令,例如ZEND_ECHO:本質(zhì)還是一個對應(yīng)的C函數(shù).

架構(gòu)結(jié)構(gòu)

PHP架構(gòu)圖

Zend層為上層的PHP層提供一些基礎(chǔ)的內(nèi)存管理以及數(shù)據(jù)結(jié)構(gòu)等.

SAPI層為最上層和Server進行通信,封裝了不同的通信類型,cgi,fast-cgi,cli等.

目錄結(jié)構(gòu)

sapi

存放根據(jù)不同環(huán)境支持的上層API交互形式,實現(xiàn)了不同的輸入輸出形式.

Zend

存放PHP相關(guān)的核心代碼,如前所述內(nèi)存管理等.

main

負責(zé)與Zend層交互的入口,還有一些鉤子函數(shù).

ext

主要是擴展相關(guān)的目錄.通過ext_skel命令生成自定的模塊.會默認安裝到這個目錄.

TSRM

線程資源管理相關(guān)的目錄,一般只有和Apache結(jié)合使用時會涉及到線程資源管理相關(guān)的代碼.
與Nginx相關(guān)的一般只會用到FastCGI協(xié)議不涉及到TSRM模塊.

到此這篇關(guān)于php之深入理解架構(gòu)布局講解的文章就介紹到這了,更多相關(guān)php之深入理解架構(gòu)布局內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標保護,版權(quán)登記號:國作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請注明來源,商業(yè)媒體及紙媒請先聯(lián)系:aishangyiwan@126.com

工信部備案號:湘ICP備19012813號-5