我如何处理我自己可以在本地维护的过时/未维护的依赖项?

时间:2017-03-02 13:32:01

标签: composer-php dependency-management

我有一个Laravel 5.3项目,我正在升级到Laravel 5.4,并且由于Laravel中的一些更改,有一些需要更新的依赖项。除了一个以外的每个依赖都有更新我可以安全切换到。

检查github我发现其他人遇到了同样的问题,并且解决了如何解决问题的简单方法。但是,由于未知原因,依赖项开发人员表示他们将不再支持它,并会认为它已被弃用。有拉动请求来解决问题,但没有人可以接受这些请求。

我可以做的是导航到我的供应商文件夹并自己进行更改,但我知道这不是正确的做事方式,因为最终会改变覆盖的变化,我们又回到原点。

如何处理过时/无法维护的依赖项问题,我可以自行修复或在共享解决方案的其他人的帮助下解决?

1)我可以从供应商处复制文件,并尝试将第三方文件集成到我的项目中。

2)我可以分叉存储库并进行必要的更改,并将我的分叉版本添加到packagist(感觉不对)或将我的分叉git添加为composer.json文件中的存储库。

我对其他想法持开放态度,谢谢!

1 个答案:

答案 0 :(得分:0)

我将添加我现在解决它的方式。如果有人有更好的答案,我很乐意接受。

在我的情况下,有问题的存储库是一个我可以分叉的Github存储库。然后,我可以克隆存储库并进行任何所需的更改。假设以下是我在composer.json文件中的内容。

"require": {
    "someoneelse/project": "^1.0"
}

在我的composer.json文件中,我找到了依赖项的“someoneelse / project”,并将当前版本要求“^ 1.0”更改为“dev-master”。这将从主分支中提取最新的提交,并将最小稳定性设置为dev。

然后我将我的存储库添加到composer.json。你可以这样做

"repositories": [
    {
        "type": "git",
        "url": "https://github.com/markustenghamn/project.git"
    }
],
"require": {
    "someoneelse/project": "dev-master"
}

运行composer update现在将从我的分叉存储库中获取最新版本。如果有人决定再次开始这个项目,我总是可以改回来。依赖项可能需要分叉项目composer.json文件中的其他依赖项,请记住在需要时更新这些依赖项。