Дебаггер Xdebug для PHP кода в связке with VS Code

Настройка дебаггера Xdebug для PHP кода в связке with VS Code

Xdebug настраивается в VS Code через установку расширения PHP Debug, конфигурацию файла php.ini и создание файла launch.json для запуска отладчика. После этого вы сможете устанавливать точки останова и пошагово отлаживать PHP-код прямо в редакторе.

Зачем это нужно

  • Xdebug позволяет пошагово проходить через код PHP и видеть значения переменных в реальном времени
  • Встроенная отладка в VS Code упрощает поиск и исправление ошибок без использования var_dump() и echo
  • Точки останова (breakpoints) помогают остановить выполнение кода на нужной строке и анализировать состояние программы
  • Отладчик позволяет отслеживать стек вызовов функций и понимать порядок выполнения кода
  • Можно инспектировать содержимое массивов, объектов и других структур данных без промежуточного вывода
  • VS Code с Xdebug значительно ускоряет разработку и тестирование PHP-приложений
  • Дебаггер работает с локальным сервером и удалёнными серверами через сетевое соединение
  • Условные точки останова позволяют останавливать выполнение только при определённых условиях

Пошаговая инструкция

  1. Откройте VS Code и перейдите в раздел расширений, нажав Ctrl+Shift+X
  2. В поле поиска введите PHP Debug и найдите расширение от Felix Becker
  3. Нажмите кнопку Install для установки расширения PHP Debug
  4. Убедитесь, что на вашем компьютере установлен PHP с поддержкой Xdebug (PHP версии 7.0 и выше)
  5. Откройте командную строку или терминал и выполните команду php -v для проверки версии PHP
  6. Выполните команду php -m | grep xdebug (на Linux/Mac) или php -m | findstr xdebug (на Windows)
  7. Если Xdebug не установлен, установите его через package manager или скачайте с официального сайта xdebug.org
  8. Для Windows скачайте DLL-файл Xdebug, соответствующий вашей версии PHP
  9. Найдите расположение файла php.ini, выполнив команду php -i | grep "php.ini"
  10. Откройте файл php.ini в текстовом редакторе (например, Notepad++)
  11. Добавьте следующие строки в конец файла php.ini:
  12. Скопируйте текст: [xdebug]
  13. На новой строке добавьте zend_extension=путь/к/xdebug.so (на Linux/Mac) или zend_extension=путь/к/xdebug.dll (на Windows)
  14. Добавьте строку xdebug.mode=debug
  15. Добавьте строку xdebug.start_with_request=yes
  16. Добавьте строку xdebug.client_host=localhost
  17. Добавьте строку xdebug.client_port=9003
  18. Сохраните файл php.ini и закройте редактор
  19. Перезагрузите веб-сервер (Apache, Nginx) или локальный сервер PHP для применения изменений
  20. Вернитесь в VS Code и откройте папку с вашим PHP-проектом через File > Open Folder
  21. Создайте новую папку .vscode в корне проекта, если она не существует
  22. Внутри папки .vscode создайте файл launch.json
  23. Откройте файл launch.json и вставьте следующий конфигурационный код:
  24. Скопируйте текст конфигурации: { "version": "0.2.0", "configurations": [ { "name": "Listen for Xdebug", "type": "php", "port": 9003 } ] }
  25. Сохраните файл launch.json
  26. Откройте любой PHP-файл в VS Code и нажмите на номер строки слева для установления точки останова (появится красная точка)
  27. Перейдите на вкладку Run and Debug (или нажмите Ctrl+Shift+D)
  28. В выпадающем меню выберите конфигурацию Listen for Xdebug
  29. Нажмите кнопку Start Debugging (зелёная стрелка) или нажмите F5
  30. Откройте браузер и перейдите на страницу вашего PHP-скрипта (например, http://localhost/your-script.php)
  31. Выполнение кода остановится на установленной точке останова
  32. Используйте кнопки в панели отладки для пошагового выполнения кода: Step Over (F10), Step Into (F11), Step Out (Shift+F11)
  33. Смотрите значения переменных в левой панели раздела Variables
  34. Для условной точки останова кликните правой кнопкой на красную точку и выберите Edit Breakpoint
  35. Введите условие, при котором точка останова должна сработать (например, $var > 10)
  36. Для остановки отладки нажмите Shift+F5 или кнопку Stop в панели управления
  37. Если отладчик не подключается, проверьте, что Xdebug включён в php.ini через команду php -i | grep xdebug
  38. Убедитесь, что порт 9003 не заблокирован брандмауэром на вашем компьютере
  39. Если вы работаете с удалённым сервером, измените xdebug.client_host на IP-адрес вашего компьютера
  40. Проверьте, что в конфигурации 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.

Похожие материалы

Изменение темы оформления и шрифтов разработчика в VS Code
Автоматическое форматирование кода при сохранении в VS Code
Полезные расширения для VS Code упрощающих написание кода