2011-11-24 120 views
3

我的vim調試器需要我在瀏覽器中設置一個Xdebug cookie,通過追加?XDEBUG_SESSION_START=1,之後我可以開始調試。Vim的PHP調試器:調試命令行腳本

但在CLI上調用腳本時,我無法設置此cookie /會話。

如何使用vim調試命令行php-scripts?

回答

5

我還沒有在一個方便的地方找到這個拼圖的所有部分,所以這裏是我的稍微更完整的解決方案。這適用於vim 7.3,xdebug 2.0。

  1. 獲取debugger vim plugin

    • 的debugger.py文件進去的.vim /插件,其病原體不會自動做。
    • 使用F5鍵啓動VIM偵聽傳入XDebug的連接(在端口9000默認情況下)
  2. 在php.ini中右的XDebug相關的設置(使用替代php.ini文件,也許):

[Zend] 
zend_extension = /full/path/to/xdebug.so 
xdebug.remote_enable = 1 
xdebug.remote_port =9000 
xdebug.remote_host = localhost 
; We have to turn on remote_autostart when running php from 
; cli. That's probably a good reason to keep the cli and apache 
; versions of php.ini distinct. 
xdebug.remote_autostart=1 
; idekey can be just about anything, but the value in php.ini needs 
; to match the value used in the environment that launches php. 
xdebug.idekey=vim_session 
  1. 當從命令行啓動PHP腳本,預置idekey ENVI形式ronment VAR

出口XDEBUG_IDEKEY = 「idekey = vim_session」

  1. 按F5在vim啓動監聽的REMOTE_PORT

  2. 在與殼XDEBUG_IDEKEY值,用「php {scriptname}」啓動php

因此,PHP加載php.ini,找到xdebug.so擴展名,這是用這些php.ini設置初始化的。 xdebug擴展攔截腳本執行並嘗試連接到localhost:9000,這是vim + python擴展正在偵聽的地方。建立連接後,xdebug擴展將協調調試會話,並且vim插件將引入一堆類似ide的調試窗口。瞧!

紅利鏈接:我也使用this shell scrip t啓動php。它等到它看到vim打開調試端口,然後啓動php會話。完成後,它會打印結果代碼並循環返回以進行另一次運行(除非您點擊ctrl + c,當然)。

0

我想你會找到你的答案in the docs(搜索Starting The Debugger)。

+1

此鏈接討論PHP的命令行調試器。但問題是關於基於VIM的PHP調試器,這是一個非常不同的動物。 – Stabledog