程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP源代碼目錄結構簡介

PHP源代碼目錄結構簡介

編輯:關於PHP編程

 

余超  [email protected]

基於PHP-5.3.8源代碼給大家分享一下PHP的內核結構,以便更好的理解PHP腳本的執行過程和寫出高效率的腳本。

目錄結構如下:

1. build 和編譯有關的目錄,裡面包括wk,awk和sh腳本用於編譯處理,其中m4文件是linux下編譯程序自動生成的文件,可以使用buildconf命令操作具體的配置文件。

2. ext 擴展庫代碼,例如Mysql,gd,zlib,xml,iconv 等我們熟悉的擴展庫,ext_skel是linux下擴展生成腳本,windows下使用ext_skel_win32.php腳本生成,

每個擴展目錄下包括php_擴展名.c文件和phpt批處理測試腳本。

3. main 主目錄,包括php.h,main.c,logos.h數組等等,是php程序的主要部分,定義了程序的SAPI接口全局變量等等。

4. netware 網絡目錄,以前的版本沒有此目錄,裡面就兩個文件sendmail_nw.h和start.c,分別定義SOCK通信說需要的頭文件和具體實現。

5. pear 擴展包目錄,PHP Extension and Application Repository的簡寫,install-pear.txt文件中詳細說明了怎麼樣安裝具體的擴展包,自己去看吧。

6. sapi 和各種服務器的接口調用,例如apache、IIS等,也包含一般的fastcgi、cgi等,如果你看過apache的源代碼的話,這個目錄一目了然的清楚了,比如apache_hooks和apache2handler等等。

7. scripts Linux 下的腳本目錄。

8. tests 測試腳本目錄,主要是phpt腳本,由--TEST--,--POST--,--FILE--和--EXPECT--三個部分組成。有些需要初始化的可以加--INI--部分。

9. TSRM 線程安全資源管理器,Thread Safe Resource Manager的縮寫,研究過PHP的源碼,你就會看到這個東西到處都在,保證在單線程和多線程模型下的線程安全和代碼一致性。

10. win32目錄,Windows 下編譯PHP 有關的腳本,用了WSH。

11. Zend 文件夾核心的引擎,包括PHP的生命周期,內存管理,變量定義和賦值以及函數宏定義等等。

如果你有更好的看法,請回郵件討論,謝謝

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved