【问题标题】:Sharing composer dependencies共享作曲家依赖
【发布时间】:2013-04-15 13:47:26
【问题描述】:

我正在开发一个可以安装扩展的项目,即安装核心程序,然后可以下载并添加第三方扩展。

如果有两个单独的扩展需要相同版本的相同依赖项(例如,如果两个扩展需要 AWS 开发工具包),是否有任何方法可以使 composer 最终不会下载两个副本相同的依赖?

【问题讨论】:

    标签: php dependencies composer-php


    【解决方案1】:

    您可以将扩展创建为作曲家包。然后添加到您自己的包的主要composer.json 文件引用。

    例如:

    root/
       my-extension-a/
          composer.json ( require: dep-a, dep-b)
          vendor/
              dep-a/
              dep-b/
       my-extension-b/
          vendor/
              dep-a/
              dep-c/
          composer.json (require dep-a, dep-c)
    
      main-project/
          composer.json  (require my-extension-a, my-extension-b)
          vendor/
              my-extension-a/
              my-extension-b/
              dep-a/
              dep-b/
              dep-c/
    

    您的主项目中的composer.json 文件将如下所示:

    "require": {
             "parent5446/my-extension-a": "dev-master",
             "parent5446/my-extension-b": "dev-master"
    }
    

    您可以在 packagegist 中公开您的扩展。或者您可以使用 Satis 来引用私有存储库。此功能在此处有详细记录:Managing private packages with Satis and Composer

    【讨论】:

      猜你喜欢
      • 2015-03-26
      • 2014-03-10
      • 1970-01-01
      • 2016-12-30
      • 2013-05-30
      • 2014-05-31
      • 2016-09-23
      • 2015-08-27
      • 1970-01-01
      相关资源
      最近更新 更多