Когда какой-либо программный код генерирует неожиданный вывод, для решения проблемы требуется выяснить причину ошибки вывода. Отладка – лучший способ выяснить причину неожиданного вывода кода путем пошагового отслеживания кода.
Обычно функции print_r() и var_dump() используются для проверки вывода переменных. Расширение Xdebug используется в PHP для продвинутого уровня отладки. По умолчанию это расширение не установлено в PHP. Вы должны установить его и настроить необходимые конфигурации, чтобы использовать его функции. В этой статье показано, как расширение Xdebug может быть установлено и настроено в PHP и интегрировано с редактором кода Visual Studio в Ubuntu.
Установите Xdebug для PHP
Выполните следующую команду из терминала, чтобы установить расширение Xdebug для установленной версии PHP 7+.
$ sudo apt install php-xdebug
Настройте расширение Xdebug
Выполните следующую команду, чтобы создать файл конфигурации с именем xdebug.ini. Вы должны правильно указать путь к папке с доступными модами в зависимости от установленной версии PHP. Согласно пути, указанному в команде, в текущей системе установлен PHP версии 7.4.
$ sudo nano /etc/php/7.4/mods-available/xdebug.ini
Добавьте в файл следующие строки, чтобы установить необходимые конфигурации для включения расширения Xdebug для PHP.
xdebug.remote_autostart = 1 xdebug.remote_enable = 1 xdebug.remote_handler = dbgp xdebug.remote_host = 127.0.0.1 xdebug.remote_log = /tmp/xdebug_remote.log xdebug.remote_mode = req xdebug.remote_port = 9005 #this can be modified
Перезагрузите веб-сервер
Выполните следующую команду с правами root, чтобы перезапустить сервер Apache.
$ sudo service apache2 restart
Проверка установки Xdebug
Выполните следующую команду, чтобы проверить, правильно ли установлен Xdebug. Если расширение установлено правильно, следующая команда покажет информацию об установленной версии Xdebug с версией PHP.
$ php -v
Настроить Xdebug в VSCode
Если редактор кода Visual Studio открывается до установки расширения Xdebug, откройте его повторно. Откройте окно расширений , щелкнув меню «Вид» или нажав Ctrl + Shift + x. Введите «Отладка PHP» в поле поиска окна расширений. Вы получите следующую информацию, если расширение Xdebug правильно интегрировано с этим редактором.
Откройте файл конфигурации Xdebug, щелкнув «Добавить конфигурацию…» в меню « Выполнить», и установите необходимую конфигурацию в соответствии с файлом xdebug.ini.
Отладка PHP-скрипта с помощью Xdebug
Создайте файл PHP со следующим сценарием, чтобы показать способ использования отладчика Xdebug.
<?php //Define a site type $sitetype = "Search Engine"; //Define the site types $site1 = 'yahoo.com'; $site2 = 'hi5.com'; $site3 = 'aliexpress.com'; //Check the value of the $sitetype variable switch($sitetype) { //Define array based on the match and search site in the array case 'Search Engine': $array = Array ('google.com','ask.com','bing.com'); if(in_array($site1,$array)) echo "$site1 is a search engine site."; else echo "$site1 does not exist in the list."; break; case 'Social Network': $array = Array ('facebook.com','twitter.com','snapchat.com'); if(in_array($site2,$array)) echo "$site2 is a social networking site."; else echo "$site2 does not exist in the list."; break; case 'E-commerce': $array = Array ('aliexpress.com','ebay.com','daraz.com'); if(in_array($site1,$array)) echo "$site3 is a e-commerce site."; else echo "$site3 does not exist in the list."; break; default: echo "Unknown site."; } ?>
Выделите строку в скрипте и нажмите F9 или щелкните Toggle Breakpoint в меню Run, чтобы установить точку останова в скрипте; можно установить несколько точек останова. Нажмите кнопку «Выполнить» в левой части редактора, чтобы просмотреть подробные сведения об отладке. В следующих выходных данных две точки останова установлены в строке 5 и строке 13.
Теперь нажмите F5 или щелкните «Начать отладку» в меню «Выполнить», чтобы начать отладку с помощью Xdebug. Появится панель инструментов, как на следующем изображении для отладки, и скрипт остановит свое выполнение в первой точке останова в строке 5. В левом окне показано, какие переменные инициализируются и не инициализируются после выполнения скрипта в строке 5.
Первый значок на панели инструментов используется для продолжения сценария и перехода к следующей точке останова ( для этой цели можно использовать F5 ). Если нажать F5, после запуска отладки он перейдет к следующей точке останова в строке 13. В этой строке будут инициализированы некоторые переменные.
Второй значок используется для перехода по сценарию и перехода к строке согласно сценарию (для этого можно использовать F10).
Третий значок используется для перехода в строку точки останова (для этой цели можно использовать F11).
Четвертый значок используется для выхода из всех строк точки останова (для этой цели можно использовать Shift + F11). Пятый значок используется для перезапуска отладки (для этого можно использовать Ctrl + Shift + F5). Шестой значок используется для остановки отладки (для этого можно использовать Shift + F5).
Заключение
Xdebug – полезное расширение PHP, используемое для глубокой отладки скрипта. Это помогает кодеру легко найти причину сложных ошибок скрипта. Способ использования этого расширения отличается для разных редакторов. Здесь было объяснено, как это расширение для PHP может быть установлено и настроено для редактора Visual Studio в Ubuntu. Использование этого расширения для отладки также показано с помощью простого скрипта PHP. Эта статья поможет читателям, которые хотят изучить расширенный уровень отладки PHP-скрипта с использованием расширения Xdebug и редактора VSCode.