Xdebug настраивается в VS Code через установку расширения PHP Debug, конфигурацию файла php.ini и создание файла launch.json для запуска отладчика. После этого вы сможете устанавливать точки останова и пошагово отлаживать PHP-код прямо в редакторе.
Зачем это нужно
- Xdebug позволяет пошагово проходить через код PHP и видеть значения переменных в реальном времени
- Встроенная отладка в VS Code упрощает поиск и исправление ошибок без использования var_dump() и echo
- Точки останова (breakpoints) помогают остановить выполнение кода на нужной строке и анализировать состояние программы
- Отладчик позволяет отслеживать стек вызовов функций и понимать порядок выполнения кода
- Можно инспектировать содержимое массивов, объектов и других структур данных без промежуточного вывода
- VS Code с Xdebug значительно ускоряет разработку и тестирование PHP-приложений
- Дебаггер работает с локальным сервером и удалёнными серверами через сетевое соединение
- Условные точки останова позволяют останавливать выполнение только при определённых условиях
Пошаговая инструкция
- Откройте VS Code и перейдите в раздел расширений, нажав
Ctrl+Shift+X - В поле поиска введите
PHP Debugи найдите расширение от Felix Becker - Нажмите кнопку
Installдля установки расширения PHP Debug - Убедитесь, что на вашем компьютере установлен PHP с поддержкой Xdebug (PHP версии 7.0 и выше)
- Откройте командную строку или терминал и выполните команду
php -vдля проверки версии PHP - Выполните команду
php -m | grep xdebug(на Linux/Mac) илиphp -m | findstr xdebug(на Windows) - Если Xdebug не установлен, установите его через package manager или скачайте с официального сайта xdebug.org
- Для Windows скачайте DLL-файл Xdebug, соответствующий вашей версии PHP
- Найдите расположение файла
php.ini, выполнив командуphp -i | grep "php.ini" - Откройте файл
php.iniв текстовом редакторе (например, Notepad++) - Добавьте следующие строки в конец файла
php.ini: - Скопируйте текст:
[xdebug] - На новой строке добавьте
zend_extension=путь/к/xdebug.so(на Linux/Mac) илиzend_extension=путь/к/xdebug.dll(на Windows) - Добавьте строку
xdebug.mode=debug - Добавьте строку
xdebug.start_with_request=yes - Добавьте строку
xdebug.client_host=localhost - Добавьте строку
xdebug.client_port=9003 - Сохраните файл
php.iniи закройте редактор - Перезагрузите веб-сервер (Apache, Nginx) или локальный сервер PHP для применения изменений
- Вернитесь в VS Code и откройте папку с вашим PHP-проектом через
File>Open Folder - Создайте новую папку
.vscodeв корне проекта, если она не существует - Внутри папки
.vscodeсоздайте файлlaunch.json - Откройте файл
launch.jsonи вставьте следующий конфигурационный код: - Скопируйте текст конфигурации:
{ "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "port": 9003 } ] } - Сохраните файл
launch.json - Откройте любой PHP-файл в VS Code и нажмите на номер строки слева для установления точки останова (появится красная точка)
- Перейдите на вкладку
Run and Debug(или нажмитеCtrl+Shift+D) - В выпадающем меню выберите конфигурацию
Listen for Xdebug - Нажмите кнопку
Start Debugging(зелёная стрелка) или нажмитеF5 - Откройте браузер и перейдите на страницу вашего PHP-скрипта (например,
http://localhost/your-script.php) - Выполнение кода остановится на установленной точке останова
- Используйте кнопки в панели отладки для пошагового выполнения кода:
Step Over(F10),Step Into(F11),Step Out(Shift+F11) - Смотрите значения переменных в левой панели раздела
Variables - Для условной точки останова кликните правой кнопкой на красную точку и выберите
Edit Breakpoint - Введите условие, при котором точка останова должна сработать (например,
$var > 10) - Для остановки отладки нажмите
Shift+F5или кнопкуStopв панели управления - Если отладчик не подключается, проверьте, что Xdebug включён в
php.iniчерез командуphp -i | grep xdebug - Убедитесь, что порт 9003 не заблокирован брандмауэром на вашем компьютере
- Если вы работаете с удалённым сервером, измените
xdebug.client_hostна IP-адрес вашего компьютера - Проверьте, что в конфигурации
launch.jsonуказан правильный порт, соответствующийxdebug.client_portвphp.ini
Часто задаваемые вопросы
Как проверить, что Xdebug установлен и работает? Выполните команду php -m | grep xdebug или откройте phpinfo() в браузере и найдите раздел Xdebug с информацией о версии и параметрах.
Что делать, если отладчик не подключается при запуске скрипта? Проверьте, что VS Code находится в режиме отладки (зелёная стрелка нажата), веб-сервер запущен, и браузер открывает страницу с PHP-скриптом после запуска отладчика.
Как отлаживать CLI-скрипты PHP без веб-сервера? Используйте команду php -dxdebug.mode=debug -dxdebug.start_with_request=yes скрипт.php вместо php скрипт.php, чтобы запустить скрипт с включённым Xdebug.