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

时间:2016-07-21 13:51:31

标签: php composer-php homebrew xdebug

如果你已经安装了PHP&作曲家w / homebrew并启用xdebug,您可能会看到以下错误:

  

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

有一个open issue on homebrew-php但还没有正式的解决方案。也就是说,有一个临时修复(见下文)。

1 个答案:

答案 0 :(得分:1)

临时修复:

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文件中的路径(根据您安装的作曲家版本而有所不同)。

希望下次更新作曲家时会有正式修复。如果没有,您将不得不在每次更新后重新应用此更改。

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