Любой PHP-разработчик рано или поздно сталкивается с ситуацией, когда простого var_dump() уже недостаточно. Код становится сложнее, появляются вложенные вызовы функций, исключения, асинхронные процессы, очереди и API. Поиск ошибок начинает занимать больше времени, чем написание самого кода.
Именно для решения этой проблемы существует Xdebug - наиболее популярное расширение для PHP, которое предоставляет мощные инструменты для отладки, анализа производительности и исследования выполнения программы.
Xdebug - это расширение PHP, разработанное Дериком Ретансом (Derick Rethans), которое значительно расширяет возможности стандартного интерпретатора.
Основные функции:
Проще говоря, Xdebug позволяет "заглянуть внутрь" исполнения PHP-кода.
Step Debugging
Самая популярная функция.
Позволяет:
Stack Trace
Позволяет увидеть последовательность вызовов функций.
Например:
index.php => UserController => UserService => UserRepository => PDO
Если произошла ошибка, можно сразу понять путь выполнения.
Profiling
Показывает:
Это незаменимый инструмент оптимизации.
Trace
Создает журнал выполнения программы.
Можно посмотреть буквально каждую вызванную функцию.
Например:
Controller::index() => UserService::find() => Repository::get() => PDO::execute()
Во время выполнения PHP интерпретатор постоянно сообщает Xdebug о происходящих событиях.
Если установлен breakpoint - он останавливает выполнение и сообщает IDE.
- Основные настройки
zend_extension=xdebug xdebug.mode=debug xdebug.start_with_request=yes xdebug.client_host=127.0.0.1 xdebug.client_port=9003
Использование с Docker
xdebug.client_host=host.docker.internal
Source: Orkhan Alishov's notes