Назад к блогу

Как пошагово отлаживать PHP-код с помощью Xdebug и PhpStorm в конфигурации DDEV

2022-10-084 мин чтения

Что такое отладка?

По данным Википедии: «В компьютерном программировании и разработке программного обеспечения отладка — это процесс поиска и устранения ошибок (дефектов или проблем, которые мешают корректной работе) в компьютерных программах, программном обеспечении или системах».

По данным Интернета: «Отладка похожа на роль детектива в криминальном фильме, где вы одновременно являетесь и убийцей». – Filipe Fortes

Что такое DDEV?

DDEV — это инструмент с открытым исходным кодом, который позволяет быстро настраивать локальные сайты с использованием Docker. И вам не нужно много знать о Docker, чтобы им пользоваться, достаточно просто установить его. Список команд для установки DDEV и запуска проекта WordPress или Drupal доступен по адресу ttps://davidloor.com/2021/12/22/how-to-setup-a-wordpress-and-drupal-local-site-with-ddev/

Что такое Xdebug?

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

Одной из функций, предоставляемых Xdebug, является пошаговая отладка, при которой Xdebug взаимодействует с IDE, используя протокол DBGp. PhpStorm, Sublime, Netbeans, Visual Studio Code и другие известные IDE поддерживают его. С помощью пошаговой отладки программисты могут устанавливать точки останова в любой строке PHP-скрипта, где они хотят остановить его выполнение, чтобы иметь возможность видеть состояние и поведение программы в этой конкретной точке.

Зачем нам беспокоиться об использовании такого инструмента, как Xdebug, когда у нас есть функции error_log, print_r, var_dump и другие подобные, которыми мы все много пользовались? Потому что Xdebug сделает вас гораздо более быстрым кодером и исправителем ошибок.

Предположим, вам нужно отладить PHP-файл, в котором вы почти уверены, что есть ошибка, судя по логам ошибок сервера, используя только такие функции, как error_log, print_r. Вам придется начать вызывать эти функции, передавая переменные, которые вы хотите вывести, и обновлять страницу в браузере, чтобы проверить вывод, и если переменные не дают вам информации, необходимой для исправления проблемы, вам придется повторить процесс с другим набором переменных, пока вы не получите информацию, которая может быть полезна для исправления ошибки. И, как мы знаем, этот процесс отнимает много времени.

Чтобы отладить ту же гипотетическую ошибку из примера выше в PHP-скрипте с помощью Xdebug, вам нужно будет установить точку останова в строке (строках), где вы хотите увидеть состояние программы, и обновить браузер. Вы сможете увидеть все переменные в области видимости во время запроса, как показано на следующем снимке экрана, всего за одно взаимодействие.

Отладка PHP с помощью Xdebug и PhpStorm

Установка и включение Xdebug

  1. Xdebug уже установлен при использовании DDEV.
  2. Чтобы включить Xdebug в проекте DDEV, в терминале просто выполните команду ddev xdebug on
    1. вы должны получить вывод Enabled xdebug

Начните прослушивание соединений для отладки PHP в PhpStorm

  1. Откройте ваш PHP-проект в PhpStorm
  2. В правом верхнем углу PhpStorm вы найдете небольшую кнопку в виде телефона, нажмите на нее, чтобы начать прослушивание соединений для отладки PHP.
Начните прослушивание соединений для отладки PHP
  1. Откройте ваш локальный сайт в браузере, и в PhpStorm вам будет предложено принять входящее соединение от Xdebug, где вы должны нажать «Принять».
Входящее соединение от Xdebug

Заключительные мысли

Xdebug — это просто еще один инструмент, который можно использовать для поиска и устранения ошибок в PHP-коде. Во многих случаях он может помочь повысить производительность PHP-разработчика.

PhpStorm — это также еще один инструмент, обладающий отличными функциями для разработки на PHP. Я начал использовать его 2 года назад, услышав обо всех преимуществах, которые он давал моим коллегам. Более 13 лет я был большим поклонником Apache Netbeans, который также отлично работает с Xdebug, но для его полной работоспособности требовались дополнительные шаги, и он использовал слишком много ресурсов моего компьютера, что делало его очень медленным.

Следует помнить, что «Вы хороши настолько, насколько хороши инструменты, которые вы используете».

Категории: