【问题标题】:Composer with --no-dev only config仅配置 --no-dev 的作曲家
【发布时间】:2019-06-04 03:41:06
【问题描述】:

作曲家文档说关于优化“你不应该在开发中启用任何这些优化,因为它们都会在添加/删除类时导致各种问题。在开发设置中的性能提升不值得麻烦。” (https://getcomposer.org/doc/articles/autoloader-optimization.md)

在 composer.json 中,有没有办法配置仅适用于 --no-dev 安装或更新的“配置”部分?

【问题讨论】:

    标签: composer-php autoloader


    【解决方案1】:

    遗憾的是,没有办法。您需要记住设置您的部署以在您的生产和开发机器上运行 Composer,分别有或没有记录的标志。

    话虽如此,在生产环境中,如果您运行 PHP 7,在 99% 的情况下足以使用 composer install --no-dev -o(方法 1)运行 Composer,因为:a) 方法 2A 不是 100% 可靠,b ) 方法 2B(APCu 缓存)是多余的,因为方法 1 缓存在 opcache 中。

    【讨论】:

    • 为什么你认为方法2A不可靠?方法 2B 不是多余的,第二级优化是针对加速未命中(如果您有多个自动加载器可能很重要)。
    • 对于 2A,根据文档,它不会自动加载在运行时生成的类,我个人在某些项目中遇到了问题。由于我不知道问题作者的项目范围,因此值得一提。至于2B,我可能对文档有误解,谢谢指正。
    【解决方案2】:

    我们在生产环境中使用 Docker。 Jenkins 正在构建 Docker 映像,同时安装具有该优化的作曲家包。但是在开发环境中,我们只做install 没有参数,它工作得非常好。

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 1970-01-01
      • 2020-03-30
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      相关资源
      最近更新 更多