最近http://vim.org/还是只能搬梯访问,不免淡淡的忧伤~懒得搬梯子的同学,可以访问https://github.com/vim-scripts,上面有Vim scripts的镜像,下插件还是可以的……

这里要介绍的是Vim的一个调试插件:DBGp X Client。插件使用Python编写,支持Xdebug+PHP代码远程调试,是大概两年前我基于Sam Ghods和Seung Woo Shin的vimscript #1929和vimscript #1152修改之后发布的,主要的改进是增加项目路径不一致的开发机和服务器之间进行代码调试的功能实现,以及一些小的功能调整和优化。

平时我们做PHP开发,大多都会新建一个虚拟机,在里面配置好相应的服务端环境,运行PHP代码,而本地开发机可以只用来编写、调试。编写代码自不用说。调试一般可以使用的工具就是Xdebug(也有Zend Debugger,本文不作讨论)。使用调试工具可以让服务端接受客户端请求时,服务端反向连接开发机,提供当前请求的运行时上下文信息,并支持使用断点、单步步入、步出等功能调试代码。附图一张(详细说明请查看http://xdebug.org/docs/remote):

实现这样的功能支持,需要服务端安装PHP运行环境,同时启用Xdebug模块,开发机则实现一个DBGp客户端。

服务端Xdebug的安装配置

安装PHP运行环境后,在命令行执行:

$ yum install php-pecl-xdebug

或者如果你使用的是deb系的,如Ubuntu,执行:

$ apt-get install php5-xdebug

安装完成后,编辑xdebug.ini配置文件:

zend_extension=/<extension_dir>/xdebug.so

xdebug.auto_trace=1
xdebug.collect_params=1
xdebug.collect_return=1
xdebug.profiler_enable=1

xdebug.remote_enable=true     
xdebug.remote_host=192.168.0.9
xdebug.remote_port=9000 

这里假设当前开发机的IP是192.168.0.9,开启的DBGp Client端口是9000。重启PHP-FPM使配置生效。

$ service php-fpm restart

Vim插件DBGp X Client安装配置:

现在让我们来安装并配置开发机上的DBGp Client,首先下载Vim插件DBGp X Client,解压缩后放入Vim插件目录(~/.vim/),编辑 ~/.vimrc,加入如下配置:

" Debugger
let g:debuggerPort = 9000
" client: server
let g:debuggerPath = {'sep':['/', '/'], 'map': [
            \['/home/a/develop', '/var/www'],
            \]}

上面的debuggerPath是配置开发机到服务端的路径映射,解决开发机和服务端上面的PHP应用代码路径不一致无法调试的问题。

配置好后,用Vim打开一个PHP文件,比如index.php,按F5监听。在浏览器中输入请求的服务端脚本URL,加上XDEBUG_SESSION_START=1的请求参数,这样就可以开始在Vim中调试PHP代码了。若需要从命令行触发调试,则简单设置会话变量然后运行PHP脚本即可,比如:

$ export XDEBUG_CONFIG="idekey=vim" && php index.php

最后附调试效果图一张: