1. 程式人生 > >phpstrom+xdebug的配置除錯

phpstrom+xdebug的配置除錯

     一直以來我在編寫或者除錯php程式的時候,每當遇到問題或者需要檢視下資料結果的時候都是寫一個輸出語句(var_dump()、echo、print)配合die終止後面的程式來在瀏覽器列印結果,這樣的操作是很低效的;Xdebug很早就知道了,但是一直認為沒有太大的作用,這段時間試著自己嘗試了一下發現Xdebug的作用在開發中還是非常大的;以下就是我配置Xdebug和除錯的一些步驟和經驗:

        一、安裝Xdebug

       1、下載地址:https://xdebug.org/download.php 挑選

跟機器上安裝的php匹配的版本,如果不知道自己選擇哪一個版本可以在這個連結上進行測試https://xdebug.org/wizard.php。

       2、安裝XDebug,把下載“php_xdebug-.dll”,將其複製到\php\ext\目錄。

       3、配置XDebug,開啟\php\php.ini,在末尾增加如下程式碼(路徑不能有錯):

        [XDebug]
        xdebug.profiler_output_dir="D:\phpStudy\tmp\xdebug"
        xdebug.trace_output_dir="D:\phpStudy\tmp\xdebug"
        xdebug.profiler_output_name = "cachegrind.out.%t.%p"
        zend_extension = D:\phpStudy\php\php-7.0.12-nts\ext\php_xdebug-2.6.0-7.0-vc14-nts.dll
        xdebug.profiler_append = 0
        xdebug.profiler_enable = 1
        xdebug.profiler_enable_trigger = 0
        xdebug.remote_enable =1
        xdebug.remote_handler = "dbgp"
        xdebug.remote_mode = "req"
        xdebug.idekey = PHPSTORM
        xdebug.remote_host = "127.0.0.1"

        xdebug.remote_port = 9000

xdebug.profiler_enable預設為0,當xdebug.profiler_enable設定為1的時候,xdebug會對每個請求都進行指令碼剖析;一般情況,沒有必要每個請求都需要進行效能剖析,一是佔用系統空間,二是影響指令碼執行效率。我們可以將xdebug.profiler_enable設為0,xdebug.profiler_enable_trigger設定1。這個效果是,只有GET/POST 或者COOKIE裡帶上XDEBUG_PROFILE變數,而且XDEBUG_PROFILE的值匹配才可以


重啟伺服器

      4、驗證安裝是否成功

      打印出phpinfo網頁,有Xdebug就安裝成功了,如下圖:


  二、chrom安裝Xdebug helper外掛

  1、下載

   下載連結:連結: https://pan.baidu.com/s/1irPXrQ_7USsjixSywQyvxw 密碼: 2sy3

 


三、phpstrom配置

1、開啟file-》settings



然後搜尋框輸入servers,修改設定對應引數值,特別注意Host最好不要設為127.0.0.1之類的IP,有可能繫結不到和引發Waiting for incoming connection with ide key XX!!!

下面的Use path mappings不要勾選


四、進行除錯

1、在已安裝Xdebug擴充套件的瀏覽器中,開啟你本地專案的某一個頁面。並開啟瀏覽器右上角的debug,如下圖


2、在phpstorm編輯器中,開啟瀏覽器中頁面要經過的程式碼,並按下圖中操作


3、再一次重新整理瀏覽器中開啟的頁面,然後看看phpstorm編輯器。左側斷點的紅色圓圈,變成了圈中有一個對勾,那麼代表進入了斷點。如下圖 :


五、斷點除錯的一些簡單操作(檢視網上的一些方法,感覺很實用,所以記錄下來)

1、檢視你斷點的地方之前一些變數的值 

雙擊你想檢視的變數,滑鼠停留在上邊,就會出現該值。或者選中後點擊滑鼠右鍵,選擇新增到監視(英文版的是add to watch)。

2、從你斷點開始的地方,你可以按F7,程式會一步一步往下走,碰到函式的話,會跳轉到該函式;按F8則是在當前內碼表一行一行的往下走,碰到函式不會跳轉。這兩個功能是斷點除錯的最為實用和關鍵功能。

3、當你想直接從某個斷點跳到另一行處斷點時,你可以在進入斷點後,在你想在另一行斷點處,點選斷點,然後按下F9或者點選下邊框中的綠色按鈕。

4、當你由於斷點除錯,在多處斷點,並且打開了多個檔案,想檢視你在那些地方斷點,可以按Ctrl+Shift+F8 瀏覽斷點