php debugger是专为单步调试设计的轻量级xdebug替代扩展,空闲开销仅1.3%~12.9%,兼容xdebug配置与api,并提供专属函数及触发器。

PHP Debugger是一个基于 Xdebug 开发的全新 PHP 扩展,它移除了除单步调试之外的所有功能——没有性能分析器、代码覆盖率和跟踪功能。其目标是成为一个即插即用的替代方案,在调试器加载但未实际使用时,能够显著降低系统开销。
近乎零的空闲开销
使用 Valgrind 指令计数进行的基准测试(在 GitHub Actions 中运行,支持 PHP 8.2 至 8.5)显示了在未连接 IDE 的情况下加载扩展程序时的开销:
| 基准 | Xdebug | PHP调试器 |
|---|---|---|
| bench.php(合成) | +661.6% | +12.9% |
| 校长(正在处理文件) | +124.5% | +3.6% |
| Symfony 请求 | +35.3% | +1.3% |
即插即用的 Xdebug 替代方案
php_debugger.*PHP调试器同时接受xdebug.*INI前缀,因此现有配置无需更改即可正常工作:
; Your existing Xdebug config works as-is:xdebug.mode = debugxdebug.client_host = 127.0.0.1xdebug.client_port = 9003xdebug.start_with_request = trigger ; Or use the new prefix:php_debugger.mode = debugphp_debugger.client_host = 127.0.0.1php_debugger.client_port = 9003php_debugger.start_with_request = trigger
该扩展程序还会报告trueXdebug 的存在extension_loaded("xdebug"),这意味着运行时检查 Xdebug 的软件包将继续正常工作。PhpStorm 和 VS Code 都无需任何配置更改即可正常工作。
仅调试焦点
通过移除性能分析、跟踪和代码覆盖率,该扩展程序专注于一个用例:设置断点并单步执行代码。
| 特征 | PHP调试器 | Xdebug |
|---|---|---|
| 步骤调试(DBGp) | 是的 | 是的 |
xdebug_break() |
作品 | 作品 |
XDEBUG_SESSION扳机
|
作品 | 作品 |
| 代码覆盖率 | 否(使用pcov) | 是的 |
| 个人资料分析 | 已移除 | 是的 |
| 追踪 | 已移除 | 是的 |
如果需要代码覆盖率,该项目建议使用pcov作为单独的扩展。
新的 PHP 调试器专用 API
除了完全兼容 Xdebug 之外,该扩展程序还公开了自己的函数名称和触发器作为可选替代方案:
// Xdebug-compatible (still works):xdebug_break(); // PHP Debugger equivalents:php_debugger_break();php_debugger_info();php_debugger_connect_to_client();php_debugger_is_debugger_active();php_debugger_notify();
会话触发器遵循相同的模式。XDEBUG_SESSION,,XDEBUG_SESSION_START以及XDEBUG_TRIGGER所有功能都可用,新的PHP_DEBUGGER_SESSION,,PHP_DEBUGGER_SESSION_START以及PHP_DEBUGGER_TRIGGER等效项也可用。
安装
二进制文件可在发布页面找到。下载适用于您 PHP 版本的正确二进制文件后,请将扩展添加到您的php.ini:
zend_extension=php_debugger.so
该项目也是人工智能辅助开发的一个有趣案例。根据 README 文件,整个扩展程序——包括 fork、strip、optimize 和 rename——仅用几天时间就使用 PhpStorm、Claude Code 和 OpenClaw 构建完成。
您可以在GitHub上开始使用此扩展程序。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











