如何加快作曲家安装速度


How can I speed up composer installs?

我们必须使用 GitHub 上的 VCS 存储库将几百个包迁移到 composer,我注意到即使在根服务器上也非常慢,使用平均包含 20 到 30+ 个包的应用程序。在家用机器上,情况更糟。事实上,它使工作非常乏味,并且在某种程度上是不可接受的。

是否有任何改进可以加快速度?拉链或包装师也不是我们的选择。

更新: 现在有了 Composer v2+,你不再需要 Prestissimo 了。您可以使用此新版本实现更好(令人难以置信的)速度。

<小时 />

使用 Prestissimo (仅限作曲家 v1-)

Prestissimo 是一个全局的 Composer 插件,可以并行安装依赖项。它的速度太快了。值得注意的是,Prestissimo需要cURL,它可能无法在某些防火墙或代理后面工作。我个人根本没有遇到任何问题。

确保您的composer.lock文件位于版本控制和主项目中对于快速composer install至关重要。它包含软件包的列表和有关它们(包括特定版本)的信息,Composer 使用这些软件包来加快安装过程。

有关更多详细信息,请参阅 https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file。

我会尝试的两件事

1) 使用详细选项 -v 查看需要这么长时间的时间。这可能是您的互联网带宽或延迟,或其他令人惊讶的事情。

2) 使用 --

no-dev 和 --prefer-dist 选项来防止作曲家考虑您在生产中未使用的版本。

第三:)您可以在某处运行常规的后台编辑器更新,以使缓存保持最新。所以至少你的安装会快一点。

(附言。我确定有 -v -vv 和 -vvv 用于详细级别,但现在我在文档中看不到......我以为只有第二级才能给你下载速度。

禁用 XDebug

对于像我这样试图加快 GitHub Actions CI/CD 工作流composer install的人来说,禁用xdebug和类似的调试工具可能会导致构建时间和使用量显着减少。

GitHub 的 Ubuntu 22.04 Github Actions runner 文档指出 Xdebug 默认处于启用状态,Shivam Mathur 的 Setup PHP 操作文档也提到了这一点:

注意:默认情况下,Xdebug 在 Ubuntu GitHub Actions 图像上处于启用状态,因此如果您没有在工作流程中使用它,建议您禁用它,因为这会对您的 PHP 性能产生积极影响。有关详细信息,请参阅禁用覆盖范围部分。

建议通过将coverage: none添加到 GitHub 操作工作流来禁用它:

- name: Setup PHP
  uses: shivammathur/setup-php@v2
    with:
    php-version: 8.1
    coverage: none        # Add this
    extensions: :xdebug   # OR add this to only disable XDebug - note the colon
- name: Run Composer install
  run: composer install -o -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist

但是,请记住,如果您使用 GitHub Actions 的高级调试日志记录或计划在未来使用,则至少可能需要重新启用 XDebug。