PhpStrom使用Xdebug技巧圖文教程

一、PHP7安裝Xdebug擴展

1、下載xdebug 

#wget https://xdebug.org/files/xdebug-2.7.2.tgz

(使用windows可以去官網下載:https://xdebug.org/download) 

2、解壓xdebug 

#tar xvf xdebug-2.7.2.tgz

3、準備PHP擴展庫的編譯環境 

#cd xdebug-2.7.2
//準備PHP擴展庫的編譯環境
#phpize

如果提示不存在此命令,可以到php目錄中找到該命令的絕對路徑,然後執行。

關於phpize:https://www.php.net/manual/zh/install.pecl.phpize.php

4、編譯安裝 

//配置
#./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
//編譯安裝
#make&&make install

5、配置php.ini 

zend_extension=xdebug.so #增加xdebug擴展
xdebug.remote_enable = 1 #是否開啟遠程
xdebug.remote_autostart=On #開啟遠程調試自動啟動
xdebug.remote_host=192.168.109.103 #這是你的客戶端ip
xdebug.remote_port = 9001#遠程端口(可以自己隨意配置)
xdebug.collect_params=On #收集參數
xdebug.collect_return=On #收集返回值
xdebug.profiler_enable=On #啟用性能檢測分析
xdebug.trace_output_dir="/tmp/xdebug_profiler" #指定堆棧跟蹤文件的存放目錄
xdebug.profiler_output_name = cachegrind.out.%t.%p #跟蹤轉儲到的文件的名稱
xdebug.profiler_output_name="cachegrind.out.%p" #確定用於將跟蹤轉儲到的文件的名稱

更多的配置,參考:https://xdebug.org/docs/all_settings

6、查看xdebug擴展是否安裝成功 

#php -m

看到xdebug,說明安裝成功 

二、PhpStrom配置Xdebug 

1、打開PhpStrom》Preferences》PHP》Debug 

2、打開PhpStrom》Preferences》PHP》Server 

3、右上角 

4、開啟Xdebug 

5、設置斷點、發送請求 

6、相信有很多小夥伴發現,自己的PhpStrom並沒有監聽到自己發送的請求。出發PhpStrom的debug有兩種方式:

  • (1)GET、POST請求中需要存在XDEBUG_SESSION_START參數或者cookie裡存在XDEBUG_SESSION,這個值隨意(細心的小夥伴應該會看見我在配置請求類別的時候,約定瞭一個IDE key)。

GET、POST會生成cookie XDEBUG_SESSION,有效期為1個小時(可修改php.ini配置)。

網頁上的web請求,大傢可以下載Xdebug相關的瀏覽器插件,比如Xdebug helper,它裡邊附加的有IDE key配置,隻需與我們在PhpStrom中配置的一致即可。

  • (2)我們還可以在php.ini中添加如下一行配置: 
xdebug.remote_autostart = 1

此時便無需設置GET、POST、cookie 

7、剛剛我舉例的是,請求一個接口,請求時添加瞭cookie,XDEBUG_SESSION=PHPSTROM。如果我用第一種方式,並且是網頁請求,非得添加這個配置嗎?當然不是,看下邊: 

在你要請求的頁面打上斷點,然後在瀏覽器中輸入請求url(記得開啟PhpStrom的debug) 

再看你的PhpStrom,它已經顯示出Xdebug收集的信息瞭 

到這裡,PhpStrom配置Xdebug就完成瞭,相信大傢看到瞭在PhpStrom中展示的信息旁邊有很多小按鈕,沒錯,那就是一些調試工具,下邊就來逐個介紹一下。 

三、PhpStrom中的Xdebug工具 

說明:以下摘自PHPstorm官網的debug幫助手冊:

由於以下Xdebug相關功能按鈕貼圖展示每個功能不易明白。以下序號對應紅框中順序按鈕的功能,小夥伴們可以按照下邊實際操作一遍。 

先從左邊紅框中的功能按鈕開始逐個介紹: 

  • (1)重新執行:點此按鈕會停止當前的請求並在此運行
  • (2)調試:當前應用程序停止時,單擊此按鈕再次調試它。
  • (3)暫停程序:單擊此按鈕可暫停程序執行
  • (4)停止:單擊此按鈕可通過標準shutdown 腳本在外部終止當前進程
  • (5)查看斷點:單擊此按鈕可打開“ 斷點”對話框,你可以在其中配置斷點行為

前五個是最常用的,後邊四個不常用,這裡不再詳細說明。

然後再從左到右介紹一下上邊紅框中按鈕的作用:

  • (1)顯示執行點:單擊此按鈕可突出顯示編輯器中的當前執行點
  • (2)跳過:單擊此按鈕執行程序,直到當前方法或文件中的下一行,跳過當前執行點(如果有)引用的方法。如果當前行是方法中的最後一行,則執行步驟到此方法之後執行的行。
  • (3)進入:單擊此按鈕可使調試器步入當前執行點調用的方法
  • (4)強制進入:單擊此按鈕可使調試器步進到當前執行點中調用的方法中,即使要跳過此方法也是如此
  • (5)跳出:單擊此按鈕可以將調試器步驟從當前方法中移出,直到它之後執行的行
  • (6)運行到光標:這個實際操作的時候,你會發現,當你打瞭多個斷點時,點擊此按鈕,它會跳到下一個斷點處
  • (7)評估表達:單擊會出現評估表達式對話框 

四、一個請求的Xdebug過程 

1、向php發送一個請求

2、php執行過程中遇到斷點,Xdebug收集請求信息(這個我們在php.ini中會配置收集哪些信息,比如請求參數、返回值等)

3、Xdebug將收集到的信息發送到它配置的遠程IP(包括端口,這些我們在php.ini中都有配置)

4、我們在配置PhpStrom的Xdebug時,配置瞭它監聽Xdebug中配置的端口,所以PhpStrom會收到Xdebug收集到的信息

5、PhpStrom展示出接收到的Xdebug信息

以上就是PhpStrom使用Xdebug技巧圖文教程的詳細內容,更多關於PhpStrom使用Xdebug的資料請關註WalkonNet其它相關文章!

推薦閱讀: