使用 PHPStorm + Xdebug + Firefox 单步调试 PHP 并分析代码性能

1,634
原文链接: www.jianshu.com

工欲善其事必先利其器。如果你想看懂框架,如果你想快速找到代码中的疑难问题,你首先要学会单步调试跟踪代码。
之前一直都是使用zendstudio + zend debugger + Firefox调试PHP的,。可是zend debugger在windows下不支持高版本的PHP(好像是可以支持到5.2),后来开始使用phpstorm和xdebug调试。

安装PhpStorm

官方地址:www.jetbrains.com/phpstorm/

安装PHP Xdebug扩展

xdebug官网:
xdebug.org/
扩展下载地址:
pecl.php.net/package/xde…
xdebug.org/download.ph…
如果你不能确定你需要下载哪个版本的扩展,你可以借助xdebug官方提供的工具,输入phpinfo即可获取需要下载的版本。
xdebug.org/wizard.php


修改PHP配置文件 php.ini

[Xdebug]
zend_extension=C:\webserver\server\php-5.6.9\ext\php_xdebug-2.3.3-5.6-vc11-x86_64.dll
;允许远程IDE调试
xdebug.remote_enable=on
;远程IDE所在HOST和PORT
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
;开启远程调试自动启动
xdebug.remote_autostart = Off

;可以是任意Key,这里设定为PHPSTORM
xdebug.idekey = "PHPSTORM"

;开启自动跟踪
xdebug.auto_trace = On
xdebug.trace_output_dir="C:\webserver\xdebug"

;把执行情况的分析文件写入到指定目录中
xdebug.profiler_enable=on
xdebug.profiler_output_dir="C:\webserver\xdebug"

这里你可以看到所有配置项的解释:
xdebug.org/docs/all_se…

输出phpinfo看下扩展是否安装成功。


配置PHPStorm

Ctrl+Alt+S 调出配置界面,输入xdebug搜索配置位置。
注意端口号是否和php.ini中设置的一致,默认为9000。



配置DBGP Proxy


安装firefox 调试插件

The easiest Xdebug
This extension for Firefox was built to make debugging with an IDE easier. You can find the extension at addons.mozilla.org/en-US/firef….



其中的原理你可以参看xdebug.org/docs/remote

调试PHP

在PHPStorm中创建项目,在代码中设置断点。点击phpstorm run>start listening或者右上角的小电话开启监听。进入需要调试的页面,点击火狐右上角的“臭虫”开始调试,你也可以在此点击关闭调试。




到此,你就可以愉快的进行断点调试跟踪代码了!


分析代码性能

你也可以利用WinCacheGrind或者QCacheGrind软件和xdebug生成的cachegrind.out文件分析PHP脚本的性能。
下载地址:
sourceforge.net/projects/wi…
sourceforge.net/projects/qc…
你也可以使用其他工具分析,参照这里:
xdebug.org/docs/profil…

参考资料