如何在没有xdebug的情况下运行composer(当与自制软件一起安装时)


How to run composer without xdebug (when installed with homebrew)

如果您安装了PHP&composer w/homebrew并且启用了xdebug,您可能会看到以下错误:

您正在运行启用xdebug的composer。这对运行时性能有很大影响。看见https://getcomposer.org/xdebug

在自制php上有一个悬而未决的问题,但还没有正式的解决方案。也就是说,有一个临时的解决方案(见下文)。

临时修复:

1.在您选择的编辑器中打开/usr/local/bin/composer

2.使用以下内容更新此文件:

#!/usr/bin/env bash
TEMP_PATH="$( mktemp --tmpdir --suffix=.ini -t php-no-debug.XXXXXXX )"
FILES="$( /usr/bin/env php -r 'echo php_ini_loaded_file() . "'n" . str_replace(",","", php_ini_scanned_files());' )"
cat $FILES | sed '/xdebug/d' > "$TEMP_PATH"
/usr/bin/env php -n -c "$TEMP_PATH" -d allow_url_fopen=On -d detect_unicode=Off /usr/local/Cellar/composer/1.1.1/libexec/composer.phar "$@"
rm -f "$TEMP_PATH"

您需要将/usr/local/Cellar/composer/1.1.1/libexec/composer.phar替换为现有/usr/local/bin/composer文件中的路径(根据您安装的composer版本而有所不同)。

希望下次更新composer时,会有一个正式的修复程序。如果没有,您将不得不在每次更新后重新应用此更改。

对于好奇的人:这是通过创建一个临时文件,将现有php.ini和所有包含的ini文件的内容复制到其中,但不包括任何包含xdebug的行,然后将该新文件用于composer。一旦composer完成运行,该文件就会被删除。