共享作曲家依赖项

时间:2013-04-22 15:26:17

标签: php dependencies composer-php

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

如果有两个单独的扩展需要相同依赖项的相同版本(例如,如果两个扩展需要AWS SDK),是否有任何方法可以使作曲家不会最终下载两个同样的依赖?

1 个答案:

答案 0 :(得分:2)

您可以将扩展程序创建为编辑器程序包。然后将主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"
}

您可以在packagist中公开您的扩展程序。或者您可以使用Satis引用私有存储库。此功能在此处有详细说明:Managing private packages with Satis and Composer