餘超 yuchao86@gmail.com
基於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的生命週期,記憶體管理,變數定義和賦值以及函數宏定義等等。
如果你有更好的看法,請回郵件討論,謝謝
http://www.bkjia.com/PHPjc/478531.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478531.htmlTechArticle餘超 yuchao86@gmail.com 基於PHP-5.3.8原始碼給大家分享一下PHP的核心結構,以便更好的理解PHP指令碼的執行過程和寫出高效率的指令碼。 目錄結構如...