PHP Debug (PHP 7.3) в связке с Open Server
Эта инструкция подойдет если использовать PHP
версии 7.3
или выше.
Тестирование будет показано на примере реализации простого REST API
.
OpenServer подходит для обучения и реализации не сложных проектов, в остальном более правильно использовать ОС Linux с Docker контейнерами.
Подключение PHP интерпретатора в VSCode
В программе VSCode
необходимо установить расширение PHP Intelephense
из самой программы или открыть по ссылке PHP Intelephense - Visual Studio Marketplace
Откройте VSCode
, слева внизу нажмите значок шестеренки
настроек и выберети вкладку Параметры
:
В строке поиска введите PHP
, затем выберите секцию PHP
и нажмите Изменить в settings.json
В параметре php.validate.executablePath
пропишите путь до исполняемого файла нужной версии PHP
Должно получиться следудующие:
Настройка Xdebug в VSCode
В программе VSCode
необходимо установить расширение PHP Debug
из самой программы или открыть по ссылке PHP Debug - Visual Studio Marketplace
Убедитесь что в директории лежит файл openserver/modules/php/версия_php_openserver/ext/php_xdebug.dll
.
Откройте настройки php.ini
через меню OpenServer
в правом нижнем углу экрана:
Найдите секцию [xdebug]
, закоментируйте все параметры где есть xdebug
и напишите ниже секции [xdebug] следующий текст:
zend_extension="%sprogdir%/modules/php/%phpdriver%/ext/php_xdebug.dll"
xdebug.log="%sprogdir%/userdata/temp/xdebug/log/access.log"
xdebug.mode = debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request=yes
xdebug.idekey = VSCode
xdebug.discover_client_host=false
После этого создайте по пути openserver/userdata/temp/xdebug/
директорию log
и в ней создайте файл access.log
В программе VSCode
нажмите на значок отладки слева, VSCode
предложит создать файл настроек launch.json
в директории .vscode
нажмите создать файл и затем в выпадающем меню выберите PHP
После чего откроется файл launch.json
со следующим содержимым, в данном файле необходимо убедится только в том что указан порт 9003
:
Создайте файл с содержимым <? echo xdebug_info(); ?>
и откройте его в браузере, если все сделано правильно то появится следующая страница. В указанном блоке не должно быть ошибок, если есть исправляем:
Перезапускаем OpenServer
В программе VSCode
нажав на значок отладки слева, выберите в выпадающем меню Listen for Xdebug
и нажмите значок пуск
.
Поставьте у себя в коде точку останова и откройте файл через браузер или выполните запрос к своему URL
в случае с REST API
.
Полный вывод данных
При отладке из коробки возникает небольшая проблема, XDebug работает нормально, останавливается на точках останова данные доступны в переменных. При попытки посмотреть массив, доступно определенное количество элементов. Например, массив из 172 элементов будет отображать только 32 элемента.
По сути, XDebug можно настроить с помощью параметров, помещенных в файл php.ini. Среди опций есть та которая определяет глубину объекта для отображения в графическом интерфейсе:
xdebug.var_display_max_children
При отладке с помощью расширения PHP Debug эти параметры необходимо настроить в файле launch.json
, содержащий настройки отладчика:
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"xdebugSettings": {
"max_children": 999,
}
}
Полные инструкции перечислены на этой странице.