深入理解PHP之原始碼目錄結構

2021-07-23 15:31:53 字數 861 閱讀 3390

php之所以能在web開發語言中排名靠前,不僅僅是因為語法簡單,上手容易。我個人認為更多是因為其語言本身的:模組的易擴充套件性,可維護性以及記憶體安全管理等特點。寫過php的程式設計師不一定都知道:php是如何執行的?其組織結構目錄的作用?如果對其有所了解,對php的認識會更深入,寫出的**也會更高效,更健壯......

1. build 和編譯有關的目錄。

2. ext 擴充套件庫**,例如 mysql、zlib、iconv 等我們熟悉的擴充套件庫。其中/ext/standard/目錄下是常用的標準函式集。

3. main 主目錄包含主要的 php 巨集和定義。

4. sapi 和各種伺服器的介面呼叫,例如apache、iis等,也包含一般的fastcgi、cgi等。

5. win32 和 windows 下編譯 php 有關的指令碼。

6. zend 資料夾核心的引擎,所有的 zend api 定義與巨集等。

7. scripts linux 下的指令碼目錄。

8. tests 測試指令碼目錄

9. sapi 各類 web 伺服器的介面。

10.tsrm zend 和 php 的 「執行緒安全資源管理器」 (tsrm) 目錄。

11.pear 這個目錄就是「php 擴充套件與應用倉庫」的目錄。包含了pear 的核心檔案。

其中幾個重要的檔案絕對值得你共時間去了解:

php-src/main/php.h, 位於php 主目錄。這個檔案包含了絕大部分 php 巨集及 api 定義。

php-src/zend/zend.h, 位於 zend 主目錄。這個檔案包含了絕大部分 zend 巨集及 api定義。

php-src/zend/zend_api.h, 也位於 zend 主目錄,包含了zend api的定義 

Promise原始碼深入理解

promise的第一版實現 function mypromise constructor function reject reason 捕獲構造異常 try catch e mypromise.prototype.then function onfullfilled,onrejected var p...

Okhttp深入理解及原始碼解析

okhttpclient okhttpclient new okhttpclient 第一行 request request new request.builder url url build 第二行 call call okhttpclient.newcall request 第三行 1 建立 o...

深入理解AQS原始碼解析一

三 最後小結一下 一 概念 我們談到併發,就不得不談reentrantlock鎖 而談到reentrantlock鎖,不得不談一下abstractqueuedsynchronized aqs 類如其名,抽象的佇列式的同步器,aqs定義了一套多執行緒訪問共享資源的同步器框架,許多同步類實現都依賴於它,...