PHP的構成及工作原理

2021-09-27 06:18:34 字數 1168 閱讀 4789

php原始碼主要目錄有下列幾個:

常用的兩個sapi是cli和fpm,另外還有embed,這三種是比較典型的sapi,除此還有litespeed和apache2handle,除了cli和fpm其他都是配合其他應用使用的。

main:php的主要**,主要是輸入/輸出、web通訊,以及php框架的初始化操作(如fastcgi協議的解析、擴充套件的載入、php配置解析等工作)等,位於zendvm的上一層。

zendvm:是乙個虛擬計算機,介於php應用與實際計算機之間,用於解析執行php**。zendvm是php語言的核心部分,php的**解釋、執行就是由zend完成的。zend整體用純c實現,它將php**翻譯(詞法、語法解析等一系列編譯過程)為可執行opcode的處理並實現相應的處理方法、實現了基本的資料結構(如hashtable、oo)、記憶體分配及管理、提供了相應的api方法供外部呼叫,是一切的核心,所有的外圍功能均圍繞zend實現。

虛擬機器的特點是實現跨平台,只需要按照不同平台編譯出對應的解析器就可以實現**的跨平台執行。

ext(extension):擴充套件是php核心提供的一套用於擴充php功能的一種方式,php社群中有豐富的擴充套件可供使用。圍繞著zend引擎,extensions通過元件式的方式提供各種基礎服務,我們常見的各種內建函式(如array系列)、標準庫等都是通過extension來實現,使用者也可以根據需要實現自己的extension以達到功能擴充套件、效能優化等目的。

通過擴充套件,可以使用c/c++實現更強大的功能和更高的效能。擴充套件可分為php擴充套件、zend擴充套件(主要應用於zendvm)。

從main()開始,php生命週期分為以下幾個階段:

不同的sapi的實現,各個階段的執**況會有一些差異。

php實現乙個典型動態語言的執行過程:

php本身是用c實現的,因此最終呼叫的也都是c的函式,實際上,可以把php看做是乙個c開發的軟體

參考:

秦朋 《php7內和剖析》第1.4/5節

php的執行機制與原理(底層)

php底層的執行機制與原理

PHP的構成及工作原理

php原始碼主要目錄有下列幾個 常用的兩個sapi是cli和fpm,另外還有embed,這三種是比較典型的sapi,除此還有litespeed和apache2handle,除了cli和fpm其他都是配合其他應用使用的。main php的主要 主要是輸入 輸出 web通訊,以及php框架的初始化操作 ...

php的工作原理

php有一種專門解釋php的引擎稱之為zend引擎 對於源程式,php引擎全部讀入,而後進行詞法分析,如果遇到不認識的詞,就報parse error 詞法錯誤後終止分析 詞法分析後進入語法分析 語法分析按照一定的結構例如分號,進行語法組織,分析語法有無錯誤,如果出錯,報syntax error,但會...

QT 專案的構成及原理

將專案切換到編輯模式,如下 這個專案中一共有4個檔案,入口檔案main.cpp mainwindow.ui檔案 mainwindow.h和mainwindow.cpp後台原始檔,在main函式中直接呼叫mainwindow類的show 方法顯示主介面,那麼我們切換到ui的設計檢視 雙擊專案中的mai...