Вы когда-нибудь сталкивались с фрагментом кода, написанного на PHP, который работает не так, как должен? Если у вас нет большого опыта отладки приложений, вы бы наверняка использовали error_log() и var_dump() много для проверки ваших переменных, что работает, но могло бы быть и лучше.
Ранее работая с другими языками, такими как C # или Java, я научился использовать точки останова для проверки своего кода, и это тоже возможно в PHP благодаря Xdebug.
Xdebug – это расширение PHP, которое предоставляет возможности для отладки и профилирования нашего кода, позволяя нам проверять переменные и проверять вызовы шаг за шагом. Под капотом это расширение использует протокол DBGp , который обеспечивает связь между механизмом выполнения (официально Zend Engine ) и IDE.
Для этой статьи я предполагаю, что вы уже установили Код Visual Studio и среда выполнения PHP.
Жизнь для вас легка: просто выполните следующую команду, и все готово. Не забудьте сказать “нет”, если он спросит о добавлении расширения в ваш php.ini , так как мы рассмотрим это позже.
# pecl установить xdebug
Из-за склонности Windows усложнять работу, установка Xdebug потребует много шагов.
Примечание: Поскольку мы будем изменять только файл php.ini , не имеет значения, используете ли вы Apache, Nginx, Xampp и т. Д.
Первый шаг – определить вашу текущую версию PHP, для которой вы можете создать новый файл PHP, ввести phpinfo(), а затем выполнить поиск по следующим строкам (используйте Ctrl+F).
- Версия: Прямо в начале информационной страницы.
- Компилятор: Обратите внимание на версию компилятора (VC11, VC14 и т.д.)
- Архитектура: Он сообщит вам, используете ли вы x86 (32 бита) или x64 (64 бита).
- Потокобезопасность: проверьте, включена ли она у вас или нет. Если он включен, то ваша версия “Потокобезопасна” (TS), в противном случае она “Не потокобезопасна” (NTS). Дополнительная информация здесь .
Имея эту информацию, вы должны перейти на страницу загрузки Xdebug и выбрать подходящую версию для вашей текущей настройки. Библиотека DLL, которую вы получите, должна быть помещена в вашу папку расширений PHP, т.е. C:\xampp\php\ext .
После загрузки и установки Xdebug вам нужно будет зарегистрироваться и включить расширение в вашем php.ini . Для этого откройте файл и в конце добавьте следующие строки:
[xdebug] ; Path for the library in the extensions folder zend_extension="/path/to/xdebug" ; Enable communications using DBGp protocol xdebug.remote_enable=1 ; Automatically start a debugging session? xdebug.remote_autostart=1 ; Host on which the IDE will run. Useful when using Docker xdebug.remote_host=127.0.0.1 ; The port to use for DBGp. Default is 9000 xdebug.remote_port=9000 ; Show stacktraces? xdebug.default_enable=1
Редактировать: добавлены дополнительные параметры конфигурации
💡 Не забудьте перезагрузить свой веб-сервер после применения этих изменений.
Теперь, когда механизм выполнения отправляет отладочную информацию через порт 9000, мы установим расширение VS Code, которое позволит нам взаимодействовать с отладчиком из среды IDE. Для этого руководства мы будем использовать “PHP Debug” от Феликса Беккера с рынка расширений.
Этот процесс очень прост: установите его, включите и готово.
Теперь, когда отладчик и расширение IDE установлены, вам нужно будет добавить конфигурацию, чтобы указать VSCode, какой инструмент будет использоваться для отладки. Для этого выполните следующие действия:
- В меню слева выберите пункт “Выполнить”.
- В верхней части боковой панели, если там написано “Нет конфигураций”, откройте выпадающий список и выберите “Добавить конфигурацию”.
- В приглашении “Выбрать среду” выберите “PHP”.
- Настройте параметры в соответствии с тем, как вы настроили Xdebug в
php.ini.
Чтобы добавить точки останова, просто щелкните в пустом пространстве слева от номеров строк на панели редактора. Появится красная точка. После этого нажмите зеленую кнопку воспроизведения на боковой панели; Теперь нижняя панель должна измениться с синего на оранжевый, сигнализируя о том, что она запущена в режиме отладки.
Если вы выполните свой код, среда выполнения остановится в точке останова, и среда IDE позволит вам проверить переменные в этот момент времени или использовать кнопки шага, чтобы увидеть, что произойдет после этой точки останова. Чтобы продолжить выполнение кода, просто нажмите кнопку воспроизведения еще раз или остановитесь с помощью кнопки “Стоп” (красный квадрат).
Это был очень легкий подход к установке Xdebug и началу отладки. Я приглашаю вас продолжить чтение об удаленной отладке в официальная документация .
Счастливого кодирования!
Оригинал: “https://dev.to/zeegcl/debugging-a-php-project-on-vscode-with-xdebug-2anp”