如何在Composer中使用替代存储库来获取依赖项的依赖关系?

时间:2017-08-13 01:15:33

标签: php composer-php tcpdf html2pdf

这是我的composer.json:

{
    "require": {
        "spipu/html2pdf": "dev-master"
    }
}

现在,spipu/html2pdf取决于tecnickcom/TCPDF,但我想使用patch-1 branch of divinity76/TCPDF代替tecnickcom/TCPDF,我该怎么做?

(问题是:在tecnickcom / TCPDF中存在unicode bug?限制?使得无法生成包含unicode文件名的PDF文件,例如aæøå.pdfi have sent a fix pull request,但已超过2个月没有来自上游维护者的回复:(我也尝试通过电子邮件发送tecnickcom,但没有回复)

1 个答案:

答案 0 :(得分:0)

通过Axalix在评论中发布的链接,我发现我可以使用composer.json中的repositories属性替换另一个存储库,但是,此替代存储库不会加载标记; t已存在于原始存储库中,只是分支。但是,spipu / html2pdf特别需要版本~6.2,这使得作曲家拒绝安装任何dev-branch ...但是使用as关键字,我可以用任何版本替换任何分支,在那里介意,这似乎有效:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/divinity76/TCPDF.git"
        }
    ],
    "require": {
        "spipu/html2pdf": "dev-master",
        "tecnickcom/tcpdf": "dev-patch-1 as 6.2.13"
    }
}

我在这里找到了分支版本替换解决方案(as关键字)http://mnapoli.fr/overriding-dependencies-with-composer/

以及此答案中的存储库替换解决方案:https://stackoverflow.com/a/13500676/1067003(由Axalix链接)