Отключите Xdebug в контейнере Docker перед запуском PHPUnit через PhpStorm - PullRequest
1 голос
/ 21 марта 2019

Я настроил PhpStorm в соответствии с этим учебником: PHPUnit для PhpStorm

Я могу успешно запустить свой тест PHPUnit, поэтому он работает.

Проблема в том, что вмой докер-контейнер, я включил Xdebug, который мне иногда нужен.Обычно я docker exec захожу в контейнер и запускаю там тесты.Xdebug сильно замедляет тесты, поэтому я делаю phpdismod -s cli xdebug, прежде чем запускать свои тесты.Затем тесты запускаются в 100 раз быстрее!

Теперь я хочу добиться того же поведения, когда запускаю тесты через PhpStorm.PhpStorm вызывает собственный док-контейнер, где он запускает тесты.Я не знаю, как заставить PhpStorm запускать phpdismod -s cli xdebug перед запуском PHPUnit.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 21 марта 2019

По указанной вами ссылке есть способ задать имя изображения, например shlink_shlink_php:latest.

Что вам нужно сделать, это добавить entrypoint.sh в свой собственный образ, и на основе переменной envrionment вы можете включить или отключить режим отладки, например:

export DEBUG="${DEBUG:-on}"
if [ "$DEBUG" == "off" ]; then
  phpdismod -s cli xdebug
fi

Таким образом, по умолчанию значение отладки равно on, что означает оставить режим xdebug активным. однако, если вы передали значение окружения с именем DEBUG со значением off, оно отключит xdebug.

Вы можете передавать переменные окружения, как описано в здесь .

В качестве альтернативы, вы можете проверить следующие параметры, упомянутые в здесь , например, попытаться передать -dxdebug.remote_enable=0 через php дополнительные параметры из PHPStorm (я не уверен, будет ли предотвращать подключение к удаленному переводчику то же самое как отключение отладчика, так как я не эксперт в этой части, но вы можете проверить это тоже)

...