如何在没有 xdebug 的情况下 运行 composer(当使用 homebrew 安装时)

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

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

You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug

open issue on homebrew-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 时会有官方修复。否则,您必须在每次更新后重新应用此更改。

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