官术网_书友最值得收藏!

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還有很多強大的功能,限于篇幅就不再一一列舉了。

主站蜘蛛池模板: 长垣县| 抚顺县| 台湾省| 承德市| 长垣县| 尉氏县| 岑溪市| 永昌县| 永和县| 龙州县| 恩平市| 藁城市| 平阴县| 许昌县| 河南省| 宁南县| 建湖县| 沈阳市| 平昌县| 金沙县| 分宜县| 广德县| 新建县| 商都县| 新疆| 曲水县| 江口县| 定远县| 巴里| 无棣县| 大兴区| 永嘉县| 武乡县| 四会市| 凤城市| 阳春市| 灵丘县| 微山县| 永宁县| 苍溪县| 丽江市|