- PHP 7底層設計與源碼實現
- 陳雷等
- 271字
- 2019-01-04 16:53:42
1.3 PHP 7源碼閱讀工具介紹
在研究PHP 7源碼之前,我們首先要掌握學習源碼的方法論。首先是閱讀工具,本章會介紹Windows下的Source Insight、Mac下的Understand以及Linux下的Vim+Ctags,方便讀者根據自己的操作系統選擇不同的閱讀工具。
1.3.1 Source Insight
Windows環境下有一款功能強大的IDE: Source Insight,內置了C++代碼分析功能;同時還能自動維護項目內的符號數據庫,使用非常方便。安裝過程這里不再贅述,下邊來看看具體的使用過程。
安裝完成以后,打開后的界面如圖1-2所示。

圖1-2 Source Insight示意圖
首先來創建一個工程,點擊Project,選擇New Project命令,在彈出的窗口中輸入工程名稱和工程存檔路徑,如圖1-3所示。

圖1-3 創建一個工程
填寫好后,點擊OK按鈕,在接下來的窗口中選擇代碼的目錄,如圖1-4所示。

圖1-4 選擇代碼的目錄
選擇完畢后繼續點擊OK按鈕,在接下來的窗口右側點擊Add All按鈕,在選擇后彈出的窗口中勾選recursively add lower sub-directories,點擊OK按鈕,IDE開始掃描目錄并添加文件,掃描完成后會在下邊的窗口中顯示添加到工程的文件。此時,點擊Close按鈕完成工程創建,如圖1-5所示。

圖1-5 完成工程創建
至此,工程就創建完了。點擊工具欄上的Project Window按鈕調出目錄樹就可以閱讀代碼了。如圖1-6所示,可以看到左側是代碼中的符號列表,中間是編輯器,右側是目錄樹。

圖1-6 閱讀代碼
Source Insight可以非常方便地顯示函數之間的調用關系,點擊Views→Relation Window命令,可以看到界面右側出現一個新的窗口,在編輯窗口點擊某一個函數,即可在調用關系窗口中顯示函數的調用關系,如圖1-7所示。

圖1-7 顯示函數的調用關系
關于Source Insight的介紹就先到這里。讀者可以自己安裝體驗一下其強大的功能。下面介紹下Mac環境下的閱讀工具Understand。
1.3.2 Understand
Understand是Mac平臺下一款功能強大的IDE,具備代碼依賴、圖形化等實用功能。安裝過程這里也不再贅述了,下邊來看看具體的使用過程。
Understand打開后如圖1-8所示。

圖1-8 Understand示意圖
點擊New Project來創建一個工程,在彈出的窗口中輸入工程名稱和工程存檔路徑,然后點擊Next按鈕,如圖1-9所示。

圖1-9 創建一個工程
接下來選擇項目代碼的語言,這里選擇C++和Web即可。C++后邊的選項表示第一次代碼分析的模式,然后繼續下一步,如圖1-10所示。

圖1-10 選擇項目代碼語言
這一步是確定如何導入文件和設置,如果讀者使用Visual Studio或者CMake,那么選擇對應的選項即可。這里選擇第一個Add source files and directories manually單選按鈕,然后繼續下一步,如圖1-11所示。

圖1-11 確定如何導入文件和設置
接下來選擇要導入的文件目錄,點擊Add a Drirectory選項卡,在彈出來的窗口中選擇目錄和文件類型,可以選擇要包含的多種文件類型到項目中,記得勾選Include subdirectories復選框,然后繼續下一步,如圖1-12所示。

圖1-12 選擇要導入的文件目錄
之后一個項目就創建完了。Understand會自動找到對應目錄下的文件開始進行代碼分析,如圖1-13所示。

圖1-13 代碼分析
Unserstand也可以為代碼分析生成其調用關系圖,如圖1-14所示。

圖1-14 生成調用關系
在某個函數上右擊,選擇Graphical Views→Declaration命令,可以看到該函數的調用關系,如圖1-15所示。

圖1-15 查看函數的調用關系
Understand還有很多非常有用的功能,在這里就不再一一列舉了,大家可以自己實踐一下。接著來介紹一下Linux下強大的代碼閱讀工具Vim。
1.3.3 Vim+Ctags
Linux環境下可以使用Vim+Ctags來閱讀代碼。Ctags是Vim下閱讀代碼的一個輔助工具,可以生成函數、類、結構體、宏等語法結構的索引文件,它的使用也非常簡單,如下:
$ yum install ctags // Ubuntu下使用apt-get install ctags $ cd /home/vagrant/php7/book/php-7.1.0/ $ ctags -R *
這一步,表示給當前目錄下所有的文件(包含子文件)生成索引文件,執行完后可以看到當前目錄下生成了一個tags文件:
$ ll tags -rw-rw-r--1 vagrant vagrant 7.2M 11月 26 04:17 tags $ pwd /home/vagrant/php7/book/php-7.1.0/
打開Vim的配置文件將tags文件的目錄添加進去:
$ vim ~/.vimrc set tags=/home/vagrant/php7/book/php-7.1.0/tags
到這一步就完成了簡單的配置。當使用Vim打開該項目的時候,Vim會自動加載其索引文件,使用Ctrl+]和Ctrl+O快捷鍵就可以方便地跳轉和跳回了。
Vim + Ctags還有很多強大的功能,限于篇幅就不再一一列舉了。
- JavaScript 從入門到項目實踐(超值版)
- Cross-platform Desktop Application Development:Electron,Node,NW.js,and React
- Java編程指南:基礎知識、類庫應用及案例設計
- Oracle數據庫從入門到運維實戰
- Hands-On Enterprise Automation with Python.
- Highcharts Cookbook
- Hands-On Reinforcement Learning with Python
- JavaCAPS基礎、應用與案例
- Getting Started with Python
- Python期貨量化交易實戰
- Enterprise Application Architecture with .NET Core
- Implementing Domain:Specific Languages with Xtext and Xtend
- Learning Scrapy
- Learning Ext JS(Fourth Edition)
- Web前端開發實戰教程(HTML5+CSS3+JavaScript)(微課版)