Xdebug 是一个开放源代码的 PHP 程序调试器(即一个 Debug 工具),可以用来跟踪,调试和分析 PHP 程序的运行状况,包括断点调试,性能分析等。
IDE Xdebug 示意图如下:
我们可以在 向导页 粘贴 phpinfo 页面源代码来获取对应当前操作系统环境及 PHP 版本的 Xdebug 扩展文件。
下载 dll 文件后按说明将其放到 php 扩展目录下,并在 php.ini 配置文件中启用该扩展,并添加相关配置。
[XDebug]
;remote 为 IDE 主机相关信息
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=PHPSTORM
zend_extension="D:\phpStudy\php\php-7.0.12-nts\ext\php_xdebug.dll"
配置完成后,保存,重启 Apache 服务器,打开 phpinfo 页面,如果看到 Xdebug 相关信息,则表示成功了。
接下来配置 PHPStorm。
打断点之后就可以开始了。
如果要启用 Xdebug 的 trace 和 profiler,需要在 php.ini 里面追加相关配置。
以开启 profiler 来进行性能分析为例:
[XDebug]
;xdebug.profiler_enable 开启后每次请求都会记录
xdebug.profiler_enable=0
;开启 xdebug.profiler_enable_trigger 则需要关闭 xdebug.profiler_enable,即在请求时,GET/POST 或者 COOKIE 中包含 XDEBUG_PROFILE 变量时才记录。推荐使用此方式以减小日志文件的磁盘空间占用。
xdebug.profiler_enable_trigger=1
;xdebug.profiler_output_dir 用于配置日志生成目录,不指定则使用默认目录。(如果该目录下始终不生成文件,请使用默认目录。)
我们访问 http://c.cn?XDEBUG_PROFILE
看到 xdebug.profiler_output_dir
目录下生成了日志文件:
然后需要借助图形化分析工具 qcachegrind 打开该文件,即可看到下面的分析结果:
很清晰的看见耗时和调用次数。