2014-02-25 75 views
2

我正在使用composersymfony php如何在不依赖的情况下在作曲家中安装软件包

有一个bundle A依赖于另一个bundle B v 1.1

但我有bundle B v 2的最新版本。

现在我想安装bundle A而不安装它的依赖项bundle B v 1.1

我该如何继续?请建议。

+0

昨天有人问到一个相当类似的[问题](http://stackoverflow.com/q/21973786/1832745)。 – nifr

+0

@nifr我想你知道。我的问题是与瓢虫捆绑。它需要瓢虫1.02,但我已安装它的主版本,所以作曲家导致错误 – user3147180

+0

如果A需要1.1和B需要2.0,那么你有依赖问题,你不能解决。可以使用1.1或2.0。 –

回答

5

设置:

最新瓢虫束版本是1.0.2但也有同时被一些更多的提交。它要求瓢虫版本是1.0.8,它不包括最新的变化。

溶液:

一个简单的解决办法是使用inline-alias。喜欢的东西:

"require" : { 
    "raulfraile/ladybug-bundle": "dev-master as 1.0.3" 
    "raulfraile/ladybug": "dev-master as 1.0.9" 
} 

替代:

您可以在composer.json包括改变的依赖具有相同的名称定义一个包。

只需从原始包中复制包装定义,添加dist/source位置并编辑要求即可。

作曲家然后将使用这个新的包定义,因为它从所有已知存储库中选取第一个匹配(packagist始终被查询)。

您应该为dist-zip选择一个特定的提交。举个例子:

"repositories": [ 
    { 
     "type": "package", 
     "package": { 
      "name": "raulfraile/ladybug-bundle", 
      "version": "1.0.3", 
      "require": { 
       "raulfraile/ladybug" : "[email protected]" 
      }, 
      "dist": { 
       "url": "https://github.com/raulfraile/LadybugBundle/archive/5c3739a881313f63f7b47ace49af5deeed211362.zip", 
       "type": "zip" 
      }, 
     } 
    } 
], 

现在需要"raulfraile/ladybug-bundle": "~1.0"composer.json,它会使用你自己定义的1.0.3版本。

+0

哇,完美的工作 – user3147180

相关问题