首頁 >後端開發 >PHP問題 >php基於什麼引擎

php基於什麼引擎

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-09-25 11:37:183380瀏覽

php基於什麼引擎

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基於什麼引擎

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基於什麼引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多