PHP调试之Xdebug+PhpStorm

文章目录
  1. 1. 前言
  2. 2. 启用Xdebug
  3. 3. PhpStorm配置
  4. 4. Debug配置
  5. 5. 开始调试
  6. 6. XDEBUG_SESSION_START
  7. 7. 书签

前言

该怎么强调调试的重要性呢?我们生病的时候,要去看医生,医生会通过各种仪器对我们进行检查,定位病因,然后给我们治疗。程序也会生病,生病的时候,作为医生(开发者)的我们,就要通过各种办法定位bug,然后修改代码。定位bug并且修改代码的过程,就是调试。

PHP的调试工具有很多,本文记录一下Xdebug的使用方法。配合使用的集成环境为laragon-1.0,IDE为PhpStorm-2016.2.1。

启用Xdebug

1、启动laragon后,任务栏右键laragon图标,定位到PHP,然后单击php.ini。(或者直接到laragon安装目录寻找php.ini,然后打开它)

2、找到[XDebug],然后修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
[XDebug]
zend_extension=php_xdebug.dll
xdebug.profiler_append=on
xdebug.profiler_enable=on
xdebug.profiler_enable_trigger=on
xdebug.profiler_output_dir="C:/laragon/tmp/xdebug"
xdebug.profiler_output_name="cachegrind.out.%t-%s"
xdebug.remote_enable=on
xdebug.remote_handler="dbgp"
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.trace_output_dir="C:/laragon/tmp/xdebug"
xdebug.idekey=PHPSTORM

3、访问http://localhost,查看phpinfo。

4、在网页中Ctrl+F,搜索“xdebug”,如果找到了xdebug的配置信息,则证明xdebug启用成功。

PhpStorm配置

1、打开phpstorm,File,Settings。

2、搜索“debug”,可以看到PHP下面的Debug,单击Debug。

3、在xdebug栏,Debug port默认端口为9000,一般不需要修改。同时,三个选项全部打钩。

4、展开Debug,单击DBGp Proxy,填入IDE key为PHPSTORM,Host为localhost,Port为80。单击OK,退出设置。

Debug配置

1、View,Toolbar,显示工具栏。

2、View,Tool Windows,Project,显示项目结构。

3、单击工具栏向下的小三角,Edit Configurations。

4、在新打开的Run/Debug Configurations窗口中,单击左上角加号,选择PHP Web Application。

5、右侧Server配置为本地Web服务器。

开始调试

1、在PhpStorm中,单击代码左侧插入断点。

2、单击导航栏的电话,然后单击导航栏中的虫子,即可打开默认浏览器进入调试。

3、网页卡住,PhpStorm自动定位到断点处。

4、此时,我们就可以根据PhpStorm提供的按钮进行需要的调试。

XDEBUG_SESSION_START

在调试时,小编发现一个神奇的问题:
假设默认浏览器是chrome,那么在chrome中访问接口,PhpStorm会自动定位到断点处。
但是,如果这时使用firefox或postman访问同样的接口,则无法定位到断点处。

解决办法:
小编注意到,在PhpStorm打开默认浏览器时,url中带有参数,例如:
http://www.dsjyw.net/?XDEBUG_SESSION_START=10218

在firefox和postman中的接口地址后也加上XDEBUG_SESSION_START=10218,成功跳转到断点,问题解决。

书签

有哪些 PHP 调试技巧?

如何调试PHP程序

Xdebug文档

Xdebug下载地址

php使用Xdebug进行调试

用 Xdebug 修正 PHP 应用程序中的错误

Xdebug 配置

phpstorm+Xdebug断点调试PHP