PHP作曲家xdebug警告

use*_*157 24 php xdebug composer-php

PHP新手.处理PHP项目并启用xdebug以便能够调试我的php应用程序.生产服务器未启用xdebug,因为它由另一个团队处理.在我的本地机器上,当我运行作曲家时,它给了我一个警告说

You are running composer with xdebug enabled. This has a major impact on 
runtime performance.
Run Code Online (Sandbox Code Playgroud)

我在开发时不想禁用xdebug.只是想确认在开发环境中运行xdebug应该对在生产服务器上安装应用程序的库/性能的作曲家没有影响.

Jen*_*och 27

我在开发时不想禁用xdebug.只是想确认在开发环境中运行xdebug应该对在生产服务器上安装应用程序的库/性能的作曲家没有影响.

只需加载Xdebug就会产生巨大的影响.即使没有启用性能分析功能,它也会使Composer的运行速度降低3倍或4倍.

换句话说:xdebug对于调试非常有用,但会增加使用的内存和Composer的处理时间.


如何禁用Xdebug for Composer运行?

我的建议是编写一个用于运行Composer的小调用助手.

帮助程序是一个bash或批处理脚本,使用自定义调用PHP php.ini,特别是为Composer配置.让我们称之为:php.ini-composer.

您可以php.ini通过删除xdebug或将其注释掉来复制当前并为Composer运行调整它,如下所示:;zend_extension = "/path/to/my/xdebug.so".

当你在它时:设置memory_limit=-1也是有帮助的.

完整命令在Windows上看起来如此: php.exe -c php.ini-composer composer.phar %*

只需克隆bash脚本的想法.


您可以在Composer FAQ中找到问题的完整答案.

https://getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer

它是在几个小时前添加/更新的.


这里还提到一些替代方案(而不是使用单独的ini文件).


ojr*_*ask 6

现代版本的 Composer 可以解决默认情况下为 CLI SAPI 启用 XDebug 的问题。它会生成一个新的 PHP 进程,并禁用 XDebug 扩展以防被检测到。

您可以通过设置以下环境变量来禁用此行为:

COMPOSER_ALLOW_XDEBUG=1
Run Code Online (Sandbox Code Playgroud)

在文档中找到了这个:https : //getcomposer.org/doc/articles/troubleshooting.md#xdebug-impact-on-composer

  • @ojrask 只是一个问题,我应该在哪里使用这个变量才能使其工作? (3认同)

小智 5

与Web脚本一样,期望CLI脚本也运行得更慢.

如果需要添加的运行时性能,则只能在CLI上禁用XDebug.设置您的PHP安装,以便它为CLI和您的服务器使用不同的ini文件,如此答案所示.