Как предотвратить трассировку полного стека в журнале ошибок PHP, когда Xdebug активен без отключения Xdebug? - PullRequest
0 голосов
/ 20 марта 2019

До сих пор я не нашел способа отключить полные трассировки стека в журнале ошибок PHP без отключения самого Xdebug. (используя xdebug_disable();) Но я хочу использовать Xdebug в полной мере, просто с более чистым, менее раздутым журналом ошибок.

Возможно, это даже невозможно, но я хотел убедиться, что нет никаких других возможностей, таких как перенаправление трассировки стека Xdebugs в какой-то другой файл (который я тоже пробовал, но безуспешно) или что-то, о чем я не думал.

1 Ответ

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

После просмотра документации по 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/"
...