Отключить сообщение Xdebug 3 «Не удалось подключиться» в интерфейсе командной строки.
При работе с Xdebug 3 в CLI он постоянно сообщает сообщение, если не установлены точки останова:
"Xdebug: [Step Debug] Could not connect to debugging client. Tried: localhost:9003 (through xdebug.client_host/xdebug.client_port) :-("
Есть ли способ отключить отображение этой формы сообщения в интерфейсе командной строки?
7 ответов
К сожалению, единственный способ отключить эту ошибку - отключить, как правило, ВСЕ ошибки и предупреждения в xdebug.ini:
xdebug.log_level = 0
Надеюсь, в будущих версиях xdebug будут другие способы (имхо, это должно быть только слабое предупреждение).
В моем случае проблема заключалась в том, что Xdebug пытался запускаться при каждом запросе, и поскольку я не выполнял отладку при каждой ошибке обновления страницы, например
Xdebug: [Step Debug] Could not connect to debugging client
были доложены и понятны.
Наиболее очевидное решение с
xdebug.log_level = 0
конечно сработало, но для меня это был слишком широкий и слепой способ бороться с этим. Итак, я проверил , и, на мой взгляд, лучший способ избавиться от этой ошибки - сообщить Xdebug, когда он действительно должен запускаться, а когда нет, поэтому правильный вариант в моем случае:
xdebug.start_with_request = trigger
как говорится в документации:
Функциональность активируется только при наличии определенного триггера при запуске запроса.
Имя триггера - XDEBUG_TRIGGER, и Xdebug проверяет его присутствие либо в $_ENV (переменная среды), $_GET или $_POST, либо в $_COOKIE (имя файла cookie HTTP).
и я рекомендую проверить хотя бы эту часть документациюих документации, потому что там больше информации, и вы даже можете выполнить более точную настройку, если это необходимо.
Начиная с версии 3.1, xdebug не перенаправляет свои логи в логи php, если вы указали путь к лог-файлу. В моем случае я использую следующие настройки и эти сообщения больше не слепят глаза в консоли
xdebug.log=/var/www/var/log/xdebug.log
xdebug.log_level=3
PR для этой проблемы: https://github.com/xdebug/xdebug/pull/738
Изменение формы php.ini «xdebug.start_with_request» «да» на «триггер» решило мою проблему, я использую MAMP.
xdebug.start_with_request = trigger
если вам нужно только подавить вывод для одного вызова, вы можете использовать это, например, показать версию:XDEBUG_CONFIG="log_level=0" composer -v
Если вы запускаете скрипт или команду PHP, вы можете установить запись INI, используя -d:
php -d xdebug.log_level=0 your_sript.php
Это то, что вам нужно:
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=1