Xdebug 是一个开放源代码的 PHP 程序调试器(即一个 Debug 工具),可以用来跟踪,调试和分析 PHP 程序的运行状况,包括断点调试,性能分析等。

Xdebug官网

IDE Xdebug 示意图如下:

file

我们可以在 向导页 粘贴 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。

file

file

file

file

file

file

打断点之后就可以开始了。

如果要启用 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 目录下生成了日志文件:

file

然后需要借助图形化分析工具 qcachegrind 打开该文件,即可看到下面的分析结果:

file

很清晰的看见耗时和调用次数。