xdebug vscode docker Запуск и отладка из командной строки, терминала. Пример launch.json
Primary tabs
Видео-обзор конфигурации ниже для запуска консольного скрипта: https://youtu.be/Br9l8yXNHZE
Конфиг xdebug
По аналогии с обычной установкой (см. наш пример для линукса) в xdebug.ini укажем 5 опций:
zend_extension=xdebug xdebug.mode=debug xdebug.client_host=host.docker.internal xdebug.client_port=9003 xdebug.idekey="netbeans-xdebug"
где:
- xdebug.idekey -- просто значение, на практике не важно что именно мы тут укажем, оставляем значение netbeans-xdebug для того, чтобы можно было проводить отладку и в нетбинс
- host.docker.internal -- важная штука, это "доменное имя" заменяет адрес нашей реальной ОС, в которой и стоит IDE, которая будет слушать сообщения от xdebug
launch.json
Добавим/поправим конфигурацию в .vscode/launch.json - можно использовать подход вроде:
{ "name": "Listen for Xdebug", "type": "php", "request": "launch", "port": 9003, "pathMappings": { "/var/www": "${workspaceRoot}", } },
Где для докера очень важно отражение путей:
"/var/www": "${workspaceRoot}",
-- в моем случае я говорю, что директория /var/www внутри контейнера соответствует корню проекта (vscode использует для этого заменитель ${workspaceRoot} )
Запуск PHP скрипта в терминале
Запуск скрипта в терминале тут нуждается в указании на то, что xdebug нужно активировать, запускать будем напр. так:
php -d xdebug.start_with_request=yes вашскрипт.php
например для codeception:
php -d xdebug.start_with_request=yes vendor/bin/codecept run tests/functional/api/v1/UserCest.php:getInfo
-- тут в роли файла скрипта выступает vendor/bin/codecept (в вашем случае тоже расширение файла может быть или не быть), а далее идут уже параметры, для codeception.
Примечание: чтобы xdebug не работал все время, мы не стали добавлять параметр
xdebug.start_with_request=yes
в файл конфига выше, а указывает его для конкретной команды, только кода нужно. Это здорово сэкономит ресурсы системы.
- Log in to post comments
- 1530 reads
vedro-compota
Wed, 06/29/2022 - 19:23
Permalink
Логгирование
Чтобы проще разбираться с проблемами (если xdebug не подключается), можно включить логгирование внутри IDE vscode для процесса отладки ("log": true,):
_____________
матфак вгу и остальная классика =)