加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Composer:如何全局覆盖composer.json的需求?

发布时间:2020-12-13 21:56:57 所属栏目:PHP教程 来源:网络整理
导读:TL; DR: 我的项目需要库A,A需要B1. B1坏了但是有一个叉子B2. 我想实现即使A需要B1而不是B2,作曲家也会安装B2而不是B1. 怎么做? 更详细: 在symfony项目中,我们需要以下库: "require": { "emanueleminotto/twig-cache-bundle": "1.0.2",} 这个库requires i
TL; DR:

我的项目需要库A,A需要B1.
B1坏了但是有一个叉子B2.
我想实现即使A需要B1而不是B2,作曲家也会安装B2而不是B1.

怎么做?

更详细:

在symfony项目中,我们需要以下库:

"require": {
   "emanueleminotto/twig-cache-bundle": "1.0.2",}

这个库requires itself另一个目前被破坏的库:

"require": {
    "asm89/twig-cache-extension": "^1.3"
},

对于破损的库已存在pull request超过4个月,但维护者拒绝合并它.

我的问题是,如果有可能为子依赖关系覆盖依赖关系,那么总是使用修补的fork而不是原始的fork?

对于asm89 / twig-cache-extension,存在以下带有修复的fork:https://github.com/blackandred/twig-cache-extension

我试图将这个fork添加到我的composer.json并在“存储库”下明确注册了fork:

"repositories": [
    {
        "type": "git","url": "https://github.com/blackandred/twig-cache-extension"
    }
],

并在我的composer-json中添加了依赖项,并将更改后的版本添加到“dev-master”:

"require": {
    "asm89/twig-cache-extension": "dev-master","emanueleminotto/twig-cache-bundle": "1.0.2",}

但是由于emanueleminotto / twig-cache-bundle仍然需要原始库,因此composer忽略fork并安装原始库.

我能在这做什么吗?

解决方法

我相信这个场景的文档有一个 good example.

基本上你需要在composer.json中定义一个别名,如下所示:

"require": {
    "asm89/twig-cache-extension": "dev-master  as 1.3",}

提问者添加:

仍然缺少一步:“作曲家更新asm89 / twig-cache-extension”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读