php基于什么引擎(thinkphp)
Zend Engine
Zend 引擎是 PHP 實現的核心,提供了語言實現上的基礎設施。作為 PHP 語言的核心, Zend Engine 存在于 PHP 源碼目錄中的 Zend 子目錄。
Why Zend Engine ?
·PHP3 采用的是邊解釋、邊執行的運行方式,運行效率很差。
·代碼整體耦合度比較高,可擴展性也不夠好。
1997年,Zeev Suraski 和 Andi Gutmans 決定重寫代碼以解決這兩個問題。
最終他倆把該項技術的核心引擎命名為 Zend Engine,Zend 的意思即為 Zeev + Andi。
相關推薦:《php基礎教程》
Zend Engine 功能
先進行預編譯( Compile ),然后再執行( Execute )。
·詞法分析(Lexer):將代碼切分為一個個的標記Toekn。
·語法分析(Parser):語法檢查。
·生成操作碼(opcode):Zend 引擎對這些 Token 進行編譯, 將代碼編譯為 opcode,并綁定相應的參數、和函數調用。
·執行(execute):Zend 引擎執行這些 opcode。
·內存管理
詳細過程如下圖所示:
PHP源碼目錄結構
/ :主要包含一些說明文件以及設計方案。 Zend :Zend 引擎的實現目錄。包括詞法語法解析,OPCODE,提供語言運行環境。 TSRM :線程安全資源管理器。 build:放置一些和源碼編譯相關的一些文件。 ext :官方擴展目錄。包括array系列,pdo系列,spl系列等函數的實現。 main :最為核心的文件,實現PHP的基本設施。 pear :PHP 擴展與應用倉庫。 sapi :各種服務器抽象層的代碼。例如apache的mod_php,cgi,fastcgi以及fpm等等接口。 tests:PHP的測試腳本集合。 scripts:Linux 下的腳本目錄。 win32:Windows平臺相關的一些實現。
登錄后復制
PHP 核心
PHP 核心由兩部分組成:Zend Engine 和 PHP Core。
PHP Core 綁定了 SAPI 層,PHP 對與上層 "服務器" 的通信進行了抽象,把所有的邏輯都抽象、封裝到了SAPI。
對于上層的服務器來說,它們對 PHP 的調用就可以通過 SAPI 來進行,實現了"解耦和"。
常見的調用 SAPI 方式有:
·mod_php5:PHP module for Apache。
·CGI:Fork-And-Execute。
·Fastcgi:常駐 (Long-Live) 型的 CGI。
·CLI:PHP 命令行模式。
The Architecture of PHP
以上就是php基于什么引擎的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的php基于什么引擎(thinkphp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ip地址查询
- 下一篇: 用来度量cpu时钟主频的是什么单位(算力