PHP composer xdebug warning

2022-08-30 17:07:34

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

You are running composer with xdebug enabled. This has a major impact on 
runtime performance.

我不想在开发时禁用xdebug。只是想确认在开发环境中运行xdebug应该不会影响编辑器在生产服务器上安装库/应用程序的性能。


答案 1

我不想在开发时禁用xdebug。只是想确认在开发环境中运行xdebug应该不会影响编辑器在生产服务器上安装库/应用程序的性能。

仅加载Xdebug就会产生巨大的影响。它将 Composer 运行速度降低 3 倍或 4 倍,即使未启用性能分析功能也是如此。

换句话说:xdebug对于调试来说是无价的,但增加了Composer使用的内存和处理时间。


如何禁用Xdebug的作曲家运行?

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

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

您可以通过删除 xdebug 或将其注释掉来复制当前版本并针对 Composer 运行进行调整,如下所示:.php.ini;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文件)。


答案 2

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

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

COMPOSER_ALLOW_XDEBUG=1

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


推荐