После просмотра документации по Xdebug, пробования всех параметров форматирования и попытки перенаправить журналы Xdebug, кажется, что для этого нет истинного решения, кроме отключения Xdebug, когда оно не требуется во время разработки.
Поскольку я разрабатываю докеризованное приложение, я изменил Dockerfile, чтобы использовать ENV, который включает или отключает Xdebug.
Dockerfile
:
FROM php:7.0.31-apache-stretch
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini
RUN echo 'xdebug.default_enable=${XDEBUG}' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.remote_enable=${XDEBUG}' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.remote_autostart=${XDEBUG}' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.remote_connect_back=0' >> /usr/local/etc/php/conf.d/xdebug.ini \
&& echo 'xdebug.remote_host=host.docker.internal' >> /usr/local/etc/php/conf.d/xdebug.ini
Запустите контейнер, созданный из вышеупомянутого Dockerfile, с
- Xdebug включен (трассировка стека включена в журналах) с помощью
--env XDEBUG=1
или
- Xdebug отключен (в журналах нет трассировки стека)
--env XDEBUG=0
docker-compose.yml
:
version: '2.4'
services:
php-container:
build:
context: . #Path to Dockerfile
environment:
XDEBUG: 0 #1 enables Xdebug
volumes:
- "./src:/var/www/html/"