php断点调试配置

kano个人技术博客 php教程 2,436 次浏览 没有评论

kano博客不知道大家平时是如何调试php程序的呢?普遍的答案是——打印,可能会是echo/print_r,也可能会用var_dump,如果你使用的是ThinkPHP框架,那答案可能会是dump。打印这种方式,朴实而实用,所以自然会是我们的首选。但是当一套复杂的代码交接到你的手中,其中的类就套了好几层,不dump个十几回甚至不知道这个变量是做什么用的时候,你可能也会仰天长叹一声:为什么php没有像Java或者js那种断点调试功能呢?实际上是有的。

php断点调试配置

php的断点调试可能很多的phper都没有用过,其中很重要的一个原因是——php的常用IDE中都没有内置它,如果你想要使用话需要进行一番配置,相比之下JavaC#IDE中断点调试都是内置的,javascript自不用说,浏览器就是它的断点调试工具。不过虽然在php中使用断点调试比较麻烦,但是相比它所能带来的好处来说还是值得辛苦一番的。下面kano就来带领大家来一步一步进行配置。

本例使用的环境为Xdebug + phpstorm + postman。需要你拥有可以安装phpxdebug扩展,以及修改php.ini的权限,例子使用本地调试模式。

1. 安装xdebug扩展

首先,我们要先安装xdebug扩展,在linux/mac/windows环境下安装方式各有不同,这个大家请在网上查阅吧,安装完成后,打开php.ini,在最后添加如下几行配置:

[xdebug]
zend_extension="c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll" 
xdebug.remote_enable=on 
xdebug.idekey="PHPSTORM" 
xdebug.remote_handler="dbgp" 
xdebug.remote_mode="req" 
xdebug.max_nesting_level=600
xdebug.remote_port=9000

其中zend_extensionxdebug所在的位置,请大家根据自己的情况进行修改。remote_port是调试用的端口,你也可以设置其他的值,如1111111222等,记住它后面要用。然后重启服务。

然后使用phpinfo查看服务是否启动成功:

xdebug

看到上面的信息则代表xdebug安装成功。

2. 配置Interpreter

Interpreter

这里配置的其实是你本机的的php解释器:

配置

3. 配置Debug

php短点调试

注意红框的地方是前面在php.ini中配置的调试端口。

4. 配置服务器

php短点调试

最上面的IDE key是我们在php.ini中配置的xdebug.idekey。下面是代理的主机与端口,因为是本机调试,所以是localhost和80。

php短点调试

php短点调试

然后配置服务器,这个是我们要访问调试的网址,Name的名字是自定义的,Host中的p.local是我本地配置的一个虚拟主机,其实是指向localhost的,Port为默认端口80,后面的的Debugger选择Xdebug

5. 开启监听

开启监听

开启监听

phpstorm右上角的小电话样子的图标,点一下会变绿代表监听已开启,或者也可以在菜单 Run -> Start Listening for PHP Debug Connections来开启监听。

开启监听

6. 开始调试!

首先在代码中打一个断点(代码行号右边单击),然后在phpstorm中的请求中加入参数“XDEBUG_SESSION_START=PHPSTORM”就可以触发调试了。

开始调试

 

开始调试

 

开始调试

可以看到在代码运行到断点处暂停了,上面的所有变量后面都很清楚的写上它们的值,而下方的控制台中有我们熟悉的单布执行、单布跳过、退出执行等操作,以及代码运行的页面及页面中所有变量的值。

我们单击几次单步执行,可以看到进入了另一个页面的方法:

开始调试

完全不逊色于其他语言的单步调试工具。

这就是kano个人博客本次为大家介绍的在phpstorm中使用断点调试的攻略了,断点调试是强大的工具,可以如同透视一般的看到代码的内部执行流程,希望大家不要嫌麻烦,也为自己的phpstorm配置一个。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go