

一个轻量级、高性能的 PHP 调试器扩展。从 Xdebug(作者 Derick Rethans)fork 而来,去除了除调试外的所有功能,并针对几乎零开销(未激活时)进行了深度优化。
“注意:这个项目是一个实验,旨在展示 PHP 社区使用 AI 工具能有多快。 整个扩展——分支、精简、优化、重命名——都是使用 PhpStorm、Claude Code、OpenClaw 在几天内而不是几个月内完成的。我们在这里是为了快速行动、适应变化,并证明 PHP 工具可以成为行业中的最佳。
在 Apple Silicon + PHP 8.5.3 上运行 bench.php,扩展已加载,xdebug.mode=debug,无 IDE 连接状态:
配置 | 执行时间 | 开销 |
|---|---|---|
无调试器 | 0.139s | — |
PHP Debugger | 0.145s | +4% |
Xdebug | 0.589s | +324% |
从 Releases 页面下载对应平台的二进制文件,放到你的 PHP 扩展目录,然后在 php.ini 中添加:
zend_extension=php_debugger.so
一键安装脚本:
curl -fsSL https://raw.githubusercontent.com/pronskiy/php-debugger/main/install.php | php
使用 PIE(PHP Installer for Extensions):
pie install pronskiy/php-debugger
PHP Debugger 同时支持 php_debugger.* 和 xdebug.* 两种前缀的配置项。
你现有的 Xdebug 配置可以直接继续使用,无需任何修改。
; 两种写法都有效:
php_debugger.mode = debug
php_debugger.client_host = 127.0.0.1
php_debugger.client_port = 9003
php_debugger.start_with_request = trigger
; Xdebug 兼容写法(也完全有效):
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
直接替换扩展后,原有调试配置无需任何改动即可使用。参考官方文档:https://www.jetbrains.com/help/phpstorm/configuring-xdebug.html
同样直接兼容,无需任何更改。
PHP Debugger 是 Xdebug 调试模式的直接替代品:
功能 | PHP Debugger | Xdebug |
|---|---|---|
extension_loaded("xdebug") | true | true |
extension_loaded("php_debugger") | true | false |
支持 xdebug.* 配置项 | 是 | 是 |
xdebug_break() 函数 | 支持 | 支持 |
XDEBUG_SESSION 触发器 | 支持 | 支持 |
步进调试(DBGp 协议) | 完整支持 | 支持 |
代码覆盖率 | 请使用 pcov | 支持 |
性能分析(Profiler) | 已移除 | 支持 |
函数/语句追踪(Tracing) | 已移除 | 支持 |
你也可以选择使用新的命名方式,它们与 Xdebug 的旧名称完全兼容并存:
php_debugger.mode、php_debugger.client_host 等php_debugger_break()、php_debugger_info()、php_debugger_connect_to_client()、php_debugger_is_debugger_active()、php_debugger_notify()PHP_DEBUGGER_SESSION、PHP_DEBUGGER_SESSION_START、PHP_DEBUGGER_TRIGGER