PHP Debugger: легка альтернатива Xdebug, створена для максимальної швидкості

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 05 квітня, 2026
Дізнайтеся, як PHP Debugger може пришвидшити вашу розробку завдяки фокусу лише на покроковому налагодженні коду. Ця легка заміна Xdebug забезпечує майже нульове навантаження на систему та повну сумісність із вашими інструментами.

PHP Debugger — це нове розширення для PHP, створене як форк Xdebug. З нього видалили все, крім step debugging: тут немає profiler, code coverage та tracing. Мета проєкту — запропонувати drop-in replacement, який створює значно менший overhead, коли розширення завантажене, але не використовується активно.

# Майже нульовий idle overhead

Benchmarks із використанням Valgrind instruction counting (проведені через GitHub Actions для PHP 8.2–8.5) демонструють рівень overhead, коли розширення завантажене без підключення до IDE:

Benchmark Xdebug PHP Debugger
bench.php (синтетичний) +661.6% +12.9%
Rector (обробка файлу) +124.5% +3.6%
Symfony request +35.3% +1.3%

# Drop-in заміна для Xdebug

PHP Debugger підтримує INI-префікси php_debugger.* та xdebug.*, тому наявні конфігурації працюють без змін:

; Ваша поточна конфігурація Xdebug працюватиме як є:
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request = trigger
 
; Або використовуйте новий префікс:
php_debugger.mode = debug
php_debugger.client_host = 127.0.0.1
php_debugger.client_port = 9003
php_debugger.start_with_request = trigger

Розширення також повертає true для extension_loaded("xdebug"), тому пакети, які перевіряють наявність Xdebug під час виконання, продовжать працювати. PhpStorm та VS Code функціонують без додаткових налаштувань.

# Фокус лише на Debug

Завдяки видаленню profiling, tracing та code coverage розширення фокусується на одному кейсі: роботі з breakpoints та покроковому виконанні коду.

Feature PHP Debugger Xdebug
Step debugging (DBGp) Так Так
xdebug_break() Працює Працює
XDEBUG_SESSION trigger Працює Працює
Code coverage Ні (використовуйте pcov) Так
Profiling Видалено Так
Tracing Видалено Так

Якщо вам потрібен code coverage, розробники радять використовувати pcov як окреме розширення.

# Новий API спеціально для PHP Debugger

Разом із повною сумісністю з Xdebug, розширення пропонує власні назви функцій та triggers як альтернативу:

// Сумісність із Xdebug (все ще працює):
xdebug_break();
 
// Еквіваленти PHP Debugger:
php_debugger_break();
php_debugger_info();
php_debugger_connect_to_client();
php_debugger_is_debugger_active();
php_debugger_notify();

Session triggers працюють аналогічно. XDEBUG_SESSION, XDEBUG_SESSION_START та XDEBUG_TRIGGER залишаються актуальними, але тепер доступні й еквіваленти: PHP_DEBUGGER_SESSION, PHP_DEBUGGER_SESSION_START та PHP_DEBUGGER_TRIGGER.

# Встановлення

Binaries доступні на сторінці релізів. Після завантаження відповідного файлу для вашої версії PHP додайте розширення у php.ini:

zend_extension=php_debugger.so

Цей проєкт також є цікавим кейсом AI-assisted розробки. Згідно з README, усе розширення — створення форку, очищення коду, оптимізація та перейменування — було реалізовано за кілька днів за допомогою PhpStorm, Claude Code та OpenClaw.

Ознайомитися з проєктом можна на GitHub.

Популярні

Logomark Logotype

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

Logomark Logotype

Простий пакет RabbitMQ для Laravel

Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!

Logomark Logotype

Створення MCP-серверів на PHP

Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту