PHP架構 PHP核心

2021-06-18 13:59:10 字數 871 閱讀 6282

php核心**執行過程

啟用和執行php直譯器有幾個關鍵步驟:

當乙個應用程式想啟動乙個php直譯器,首先呼叫php_module_startup。

這個函式是直譯器的主開關。

它啟用註冊過的sapi,初始化輸出快取系統,啟動zend引擎,

讀入php.ini檔案,啟用配置,準備好處理第一次請求。

核心模組使用到的一些重要函式有:

* php_module_startup - php主入口函式.

* php_startup_extensions - 執行所有已註冊的擴充套件的初始化函式.

* php_output_startup - 啟動輸出系統.

* php_request_startup - 是請求開始階段的主函式,每次請求,sapi函式會向下呼叫該函式,然後該函式再向下呼叫zend引擎來進行初始化,以及呼叫所有已註冊模組的請求啟動函式.

* php_output_activate - 啟用輸出系統,來使用sapi相關的輸出函式.

* php_init_config - 讀取php.ini檔案並啟用配置

* php_request_shutdown - 主要負責銷毀每個請求所占用的資源.

* php_end_ob_buffers - 用來重新整理輸出快取,如果輸出快取被啟用了的話.

* php_module_shutdown - 這個是php的主關閉函式,觸發直譯器所有其餘的關閉(shutdown)函式.

上述中的sapi是php提供給web伺服器及其他應用的開放介面,可參考:

php架構圖:

php架構之路

鑑於最近跟小夥伴聊了很多php架構發展方向的問題,相關技術整理了一下,也順便規劃了一下自己的2019年。一.常用的設計模式以及使用場景 以下是我用到過的 工廠,單例,策略,註冊,適配,觀察者,原型,裝飾器,facade,loc,pipeline 三.常用利器優化 mysql效能優化 1 理解底層bt...

PHP深入理解 PHP架構布局

解析為token 將語法轉換為抽象語法樹 將語法樹轉換opcodes scanning parsing compilation excution 執行opcodes 從上圖中看出主要從解析phpcode到執行主要經過了四個階段.獲取token可以通過token get all 函式獲取token資訊...

PHP深入理解 PHP架構布局

解析為token 將語法轉換為抽象語法樹 將語法樹轉換opcodes scanning parsing compilation excution 執行opcodes 從上圖中看出主要從解析phpcode到執行主要經過了四個階段.獲取token可以通過token get all 函式獲取token資訊...