php源代碼分析

php源代碼分析

ID:37177137

大小:46.51 KB

頁數(shù):4頁

時間:2019-05-21

php源代碼分析_第1頁
php源代碼分析_第2頁
php源代碼分析_第3頁
php源代碼分析_第4頁
資源描述:

《php源代碼分析》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、《PHP源代碼分析》第一章構建系統(tǒng)之準備工具、庫及需要具備的基礎知識PHP源代碼分析V0.0.1第一章構建系統(tǒng)1.準備工具、庫及需要具備的基礎知識;2.如何編譯不同平臺的版本?編譯時的各個選項是什么含義?源碼的目錄結構。3.如何創(chuàng)建一個PHP擴展/模塊?如何創(chuàng)建一個Zend擴展?4.如何調試PHP?如何調試PHP/Zend擴展?第二章PHP與SAPI的生命周期1.腳本的運行周期,一切從main()開始;2.模塊/腳本的起始與終止函數(shù);3.PHPSAPI協(xié)議;4.嵌入式PHP設計。第三章內存管理1.Zen

2、d的內存管理器框架;2.內存申請與釋放流程,垃圾回收;3.持久化(persistence)第四章線程安全1.為何會有這個問題?ZendEngine是如何解決的?2.我是否該啟用ZTS?各有什么優(yōu)缺點?3.如何構建一個ZTS的程序/擴展?第五章變量與常量1.PHP中的數(shù)據(jù)類型。2.變量、常量與靜態(tài)變量。3.引用計數(shù)機制;4.資源的創(chuàng)建與回收;5.未來字符串的UNICODE支持、JIT支持。第六章函數(shù)1.函數(shù)的內部布局;2.函數(shù)的定義;1.如何獲取函數(shù)的參數(shù)、可選參數(shù)、參數(shù)默認值;2.函數(shù)的返回值;第七章類

3、與對象1.類的內部布局(屬性、方法);2.構造函數(shù)與析構函數(shù);3.類的繼承與轉換(upcasting與downcasting);4.接口(輕量級的類),微觀上與類的差別;5.類之間的upcasting和downcasting。6.stdClass。第八章錯誤與異常1.什么是錯誤、什么是異常。兩者的區(qū)別;2.如何創(chuàng)建和拋出異常;3.try/catch的設計與實現(xiàn);第九章流(Streams)支持1.這方面我接觸較少,內容待定;第十章虛擬機1.腳本編譯機制(詞法分析、語法分析);2.腳本的執(zhí)行機制(CALL

4、

5、SWITCH

6、GOTO);3.各個符號表的作用;4.開發(fā)OPCode緩存器;5.開發(fā)PHP調試器;附錄1.完整的PHPAPI、ZendAPI以及宏(Micro)參考(長期工程)2.ZendEngine1的主要特性,與ZendEngine2的主要差別;3.ZendEngine3的主要特性,與ZendEngine2的主要差別;4.相關資源·項目發(fā)起:Ben(ben.yanatmsndotcom·項目參與:Ben(ben.yanatmsndotcom,http://www.yAnbiN.org)·項目啟動:2

7、007/06/09(希望可以在明年奧運會開幕前完成)·項目進度:1.2007/06/09項目啟動,討論項目規(guī)劃;2.2007/xx/xx待續(xù)……h(huán)ttp://www.yanbin.org/blog/commentary-on-php-chap1_1-prep.html源碼分析,首先得看源碼。記事本可以看,EditPlus也可以看,但顯然具有語法著色功能的EditPlus要比記事本爽。更顯然,M$的VisualC++比EditPlus還要爽。:D因此我推薦的第一款神兵就是M$VisualC++(Sorry

8、,Linuxer~)。既然用了VisualC++那么有一款它的插件我們不得不提:VisualAssistX,還沒有她的朋友盡快擁有她吧~OK,現(xiàn)在源碼是可以看了,而且是很舒服地在看,但有時我們還想實地進行單步調試以一窺究竟。要調試自然得先編譯。很不幸,PHP在Windows環(huán)境下的編譯和調試并不像想象中的那么簡單。我們至少得比在xNix環(huán)境下多做一下幾個步驟:1.下載PHP使用的DNS解析器的源代碼(http://www.php.net/extra/bindlib_w32.zip)并將其編譯輸出一個名為

9、resolv.lib的庫文件。2.下載win32編譯工具http://www.php.net/extra/win32build.zip,解壓至某一目錄(假定為$work)。在$worklib目錄里面也有個resolv.lib,我們把步驟1產生的resolv.lib復制到這個目錄,覆蓋之。3.設置編譯環(huán)境。把$Workbin添加到系統(tǒng)PATH環(huán)境變量和VisualC++的Executablefiles目錄;把$worklib添加到Libraryfiles目錄;把$Workinclude添加到Inc

10、ludefiles目錄。4.下載PHP源文件并解壓至$work。5.整理PHP的項目工程文件。PHP4.x的VC工程文件($PHPwin32php4ts*.dsw)是當時一直在維護的,因此可以直接拿來就用。PHP5.x增加了一種新的基于命令行的類Unix編譯系統(tǒng),使得編譯PHP更為簡單。于是相應的工程文件php5ts*.dsw便不再被PHP團隊維護,也不能直接使用編譯PHP5了。但我們恰恰不想單純的編譯,我們想的是在VisualC++里

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。