Рубрики
Uncategorized

Разрешите конфликты Xdebug во время выполнения Composer

Автор оригинала: David Wong.

Композитор-хорошая новость для php, но иногда он доставляет нам небольшие проблемы, такие как следующий отчет об ошибке:

Вы запускаете composer с включенным xdebug. Это оказывает существенное влияние на производительность во время выполнения. Видишь https://getcomposer.org/xdebug

Это очень распространенный конфликт , и влияние этого конфликта на работу композитора значительно. Когда мы включим функцию Xdebug, это замедлит работу нашего композитора в 3-4 раза. Другими словами: Xdebug очень важен для отладки нашей программы, но он увеличивает использование памяти и время обработки для composer.

Официальный сайт композитора предлагает решение

Далее я расскажу о своей идее устранения неполадок.

Способ 1. Отключите Xdebug глобально через файл конфигурации PHP.

Прежде всего, это должен быть конфликт, вызванный включенным Xdebug. Нам нужно выяснить, где включен Xdebug.

Напишите страницу включения phpinfo() Функции, открытую в браузере.

/usr/локальный/etc/php/5.6 Путь к файлу конфигурации (php.ini)
/usr/локальный/etc/php/5.6/php.ini Загруженный Файл Конфигурации
/usr/локальный/etc/php/5.6/conf.d Проверьте этот каталог на наличие дополнительных файлов .ini
/usr/local/etc/php/5.6/conf.d/ext-igbinary.ini, /usr/local/etc/php/5.6/conf.d/ext-mcrypt.ini, /usr/local/etc/php/5.6/conf.d/ext-redis.ini, /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini Проанализированы дополнительные файлы .ini

Видимые вызовы PHP php.ini Файлы конфигурации и conf.d Все в каталоге ini Конфигурационный файл.

Отключите модуль “xdebug” в php.ini

Закомментируйте оператор вызова точкой с запятой:

;zend_extension = "/path/to/my/xdebug.so"

Удалите файлы конфигурации, связанные с Xdebug

Если вызовы Xdebug отсутствуют в основном файле конфигурации php.ini, то можно расширить папку конфигурации, например, в моей среде, как показано на диаграмме выше: Мы можем сделать возможным conf.d/ext-xdebug.ini Переименовать в ext-xdebug.bak Или удалить ее. Таким образом, перезагрузка службы PHP не будет вызвана. Лицом к лицу мы также можем обратиться к описанным выше шагам. conf.d/ext-xdebug.ini Соответствующие инструкции Xdebug закомментированы, и эффект тот же.

Способ 2. Предотвращение вызовов Xdebug с помощью псевдонима composer

Чтобы установить псевдонимы, вам нужно знать, в какой среде оболочки вы находитесь. Мой компьютер использует zsh, поэтому отредактируйте файл. zshrc.

➜  ~ cd
➜  ~ vi .zshrc

Затем выберите один из способов установки вашего псевдонима или установите его в соответствии со следующими двумя ситуациями Два псевдонима

Вызывайте файлы конфигурации, которые не содержат модулей Xdebug

Для вызовов Xdebug в php.ini мы можем создать следующие псевдонимы, скопировав файл конфигурации (xdebug-отключен-php.ini), который не содержит Xdebug:

alias comp='php -c /path/to/xdebug-disabled-php.ini /path/to/composer.phar'

Не вызывайте никакие файлы конфигурации PHP

Этот подход решает проблему, связанную с тем, что я также скомпилировал некоторые расширенные пути конфигурации в PHP. :

# Without php.ini
alias comp='php -n /path/to/composer.phar'

/путь/к для вашего фактического пути к файлу или команде

Хорошо, теперь давайте выполним его. композитор -В Попробуйте посмотреть, есть ли какие-либо ошибки.

Хорошее, идеальное решение.