工欲善其事必先利其器。如果你想看懂框架,如果你想快速找到代码中的疑难问题,你首先要学会单步调试跟踪代码。
之前一直都是使用zendstudio + zend debugger + Firefox调试PHP的,。可是zend debugger在windows下不支持高版本的PHP(好像是可以支持到5.2),后来开始使用phpstorm和xdebug调试。
安装PhpStorm
安装PHP Xdebug扩展
修改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"
输出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 https://addons.mozilla.org/en-US/firefox/addon/the-easiest-xdebug/.
其中的原理你可以参看https://xdebug.org/docs/remote
调试PHP
在PHPStorm中创建项目,在代码中设置断点。点击phpstorm run>start listening或者右上角的小电话开启监听。进入需要调试的页面,点击火狐右上角的“臭虫”开始调试,你也可以在此点击关闭调试。
到此,你就可以愉快的进行断点调试跟踪代码了!
分析代码性能
参考资料
注意的坑
注意PHPstorm的版本和xdebug的版本
phpstorm能进入调试一直无法下一步,然后发现phpstorm版本太低2018.1.6发行的版本, 而xdebug是2019年发布的,然后我就选择了一个2018.1.6时间之前发布的xdebug就好了