Перейти к содержимому

Xdebug

Xdebug — это расширение для PHP, которое превращает слепую отладку через var_dump() и die() в полноценный контролируемый процесс с точками останова и детальным анализом выполнения кода.

Что даёт

Стандартный PHP исполняет скрипт «насквозь» и при ошибке выдаёт минимум информации. Xdebug встраивается напрямую в интерпретатор PHP и перехватывает управление во время выполнения.

Он заменяет базовый вывод ошибок на подробные трассировки стека (stack trace) с подсвеченными переменными и параметрами функций. Но главная его сила — поддержка протокола DBGP. Через него расширение связывается с IDE (PhpStorm, VS Code) и позволяет приостанавливать выполнение скрипта на любой строчке. Можно на лету смотреть содержимое переменных, менять их значения, шагать внутрь функций и проверять условия без изменения самого кода.

Кроме пошаговой отладки, модуль умеет собирать профили производительности (файлы Cachegrind) и отслеживать покрытие кода тестами (code coverage).

Плюсы в разработке:

  • Быстрый поиск багов. Вместо расстановки десятков print_r() по всему коду вы ставите breakpoint в IDE и сразу видите состояние памяти и контекст вызова на нужном шаге.
  • Профилирование. Показывает, сколько времени и памяти ушло на каждую конкретную функцию, подсвечивая «узкие места» и лишние циклы.
  • Анализ трассировки. Помогает распутать чужой или легаси-код: виден весь путь вызова от точки входа до места, где вылетело исключение.

Как использовать

Xdebug устанавливают через PECL или системный пакетный менеджер, после чего подключают в php.ini.

  1. Настройка режима (mode). В Xdebug 3 функционал разделен на модули, чтобы не нагружать PHP лишней работой. В php.ini задаётся директива xdebug.mode. Для обычного дебага ставят develop,debug, для поиска просадок по скорости — profile.
  2. Интеграция с IDE. В редакторе настраивается слушатель порта (по умолчанию 9003). Из браузера или консоли отправляется trigger (например, кука XDEBUG_SESSION или GET-параметр), Xdebug стучится в IDE, и сессия отладки стартует.
  3. Анализ профилей. Если включен режим profile, расширение генерирует файлы, которые затем открывают в утилитах вроде QCacheGrind или Webgrind для визуализации графа вызовов.

Никогда не оставляйте Xdebug включённым на продакшене. Даже если отключить отладку, активное расширение оверхедом замедляет интерпретатор PHP в 2–5 раз и активно съедает ресурсы сервера. На боевых серверах его либо полностью выключают, либо вовсе не собирают в образ.

  • Хостинг для сайта

    Хостинг для сайта

    Мощный и надежный виртуальный хостинг для сайта с поддержкой 24/7
    Подробнее
  • Почта на домене

    Почта на домене

    Позволяет создавать и использовать адреса электронной почты, привязанные к вашему доменному имени, улучшая профессиональный имидж.
    Подробнее
  • Конструктор сайтов

    Конструктор сайтов

    Генерация сайта за считанные минуты
    Подробнее