天天看点

PhpStorm中如何使用Xdebug工具

1.简介:

PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率。它以其独特的开发便利性,短时间内赢得了大量PHPer的青睐。

Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。你可以通过调试器进行前后端交互式地调试脚本。

PhpStorm作为一款强大的IDE,debug功能自然不在话下。

本案例下只讲述最基本实用的debug方法。

2.操作详解:

2.1准备工作

PHPSTORM版本 : 8.0.3 PHP版本 : 5.5.12 xdebug版本: php_xdebug-2.2.5-5.5-vc11 .dll  注 : php版本和xdebug版本一定要相对应。我这里用的是wampserver,PHP与 xdebug均已下载。单独下载Xdebug 网址为 http://xdebug.org/download.php

虽然是转载,但是这里还是标注一下,xdebug的版本是严格按照php版本来的,所以要先phpinfo()一下,看看php对应的版本,特别注意区分nts 2.2配置php.ini 找到php.ini所在的目录,在该文件的最后添加以下文本(如果已存在,要把前面的分号;去掉) zend_extension_ts= "d:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11.dll" //Xdebug存放路径, xdebug.remote_enable=ON//是否允许远程终端,这个必须开启 xdebug.profiler_enable = Off//性能优化,本文用不到,选择关闭(不关闭,会以 约每分钟几百M的速度产生大量日志文件,用不上一天你的硬盘就哭了) xdebug.idekey="PHPSTORM";//这里是调试器的关键字

将下载的xdebug.dll库拷贝到%PHP_HOME%/ext目录,然后打开php.ini文件添加如下配置:
[XDebug]
xdebug.profiler_append = 0
xdebug.profiler_enable = OFF
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir ="D:\phpStudy\tmp\xdebug"
xdebug.trace_output_dir ="D:\phpStudy\tmp\xdebug"
xdebug.profiler_output_name = "cache.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_mode = "req"
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.remote_port = 9001
xdebug.idekey="PHPSTORM"
xdebug.remote_autostart = no
zend_extension="D:\phpStudy\php55n\ext\php_xdebug-2.2.5-5.5-vc11.dll "
           

注意修改xdebug文件路径和上面的日志路径.

保存,重启服务器。

查看Xdebug是否开启成功,打印一下phpinfo即可。把以下代码放到任意php文件中,浏览器访问即可。 <?php echo phpinfo(); ?>

PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具

2.3配置 PhpStorm

下拉选择 Edit Configurations,配置服务器信息,添加项目调试开发地址,点击OK。PhpStorm配置完成。本地服务器配置详情查看  http://blog.csdn.net/knight_quan/article/details/51830683

PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具

Firefox浏览器设置

首先需要给Firefox安装Xdebug插件,我选用的是名为“The easiest Xdebug”的Firefox浏览器插件,安装后打开插件设置页面,将IDEKey填写到下图中的红框位置即可,如下所示:

PhpStorm中如何使用Xdebug工具

插件安装配置成功后需要将其启用。

PhpStorm中如何使用Xdebug工具

如上图所示在Firefox右上角有个爬虫图标,默认是灰色的,点击它会变成绿色并且虫子的脚会有爬动的动画,这样表示启用了Xdebug浏览器插件。

如果使用Chrome浏览器,可以安装Xdebug helper插件(扩展程序,一般需要翻墙),安装后配置IDEKey的值与Firefox基本一样,然后点击图标启用即可。

安装浏览器插件 建议使用Chrome浏览器,安装 xdebug helper插件(自行Google), 下载好之后点选项,IDE选PHPSTORM

PhpStorm中如何使用Xdebug工具

开始调试 1、在代码中设置断点,打开监听按钮。监听按钮在phpStorm右上角

PhpStorm中如何使用Xdebug工具

2、用浏览器访问设置了断点的代码,对应的控制器的url 例如在控制器 SiteController 中新建一个actionTest方法,浏览器中应该访问url是 http://test.yii.com/index.php?r=site/ test 访问该url,界面切换到phpStorm调试界面

PhpStorm中如何使用Xdebug工具

3、使用phpStorm调试按钮,即可动态调试代码了,可以通过快捷键操作,这样更加方便,F7步进,Shift+F8跳过区块等

PhpStorm中如何使用Xdebug工具

在调试界面下,可以看到变量信息

PhpStorm中如何使用Xdebug工具

2.4使用调试功能

在需要调试的行上打上断点(点击一下行号后面的空白处即可,再点一次取消断点),需要说明的是当程序运行到该断点时,程序会停留在该行,但该行本身不会执行。自此可以查看程序运行到此处时所包含的所有数据信息。当然,查看信息功能相当于使用echo,print或者var_dump。 操作流程: 打断点—>点击臭虫 —>点击浏览器页面触发断点 —>自动跳转回PhpStorm—>查看携带的数据(调试的目的)—>可按步执行查找问题点—>点击运行(或者F5)—>浏览器页面继续执行—>调试完成

PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具
PhpStorm中如何使用Xdebug工具

3.补充说明:

3.1如果端口被占用,可以在php.ini中配置xdebug.remote_port与PhpStorm中的Debug port相同即可。 php.ini中:

xdebug.remote_port = 9000

PhpStorm中:

PhpStorm中如何使用Xdebug工具

常见问题

第一次运行Xdebug调试时,PHPStorm报了如下错误:

Cannot accept external Xdebug connection: Cannot evaluate expression'isset($_SERVER['PHP_IDE_CONFIG'])';
           

原因为php.ini文件中dll文件配置的是

extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll
           

将其改为zend_extension后重启Apache即可,如下所示:

zend_extension=php_xdebug-2.3.2-5.6-vc11-x86_64.dll
           

4.总结:

Xdebug可以用来跟踪,调试和分析PHP程序的运行状况。本文重点是调试 。Xdebug本身拥有大量内置函数,可以分析php程序性能瓶颈等问题。关于其高级使用方法,会在其他文章中讲到。灵活使用Xdebug,对提高调试效率会有很大帮助。