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

Composer php 如何处理我可以自己在本地维护的过时/未维护的依赖关系?,composer-php,dependency-management,Composer Php,Dependency Management,我有一个Laravel 5.3项目,我正在升级到Laravel 5.4,由于Laravel中的一些更改,有一些依赖项需要更新。每个依赖项(除了一个)都有一个更新的,我可以安全地切换到的 检查github时,我发现其他人也有同样的问题,并且有一个简单的解决方案来解决这个问题。然而,由于未知的原因,依赖性的开发者已经声明他们不再支持它,并且会考虑它被弃用。存在修复问题的请求,但没有人可以接受这些请求 我能做的就是导航到我的供应商文件夹,自己进行更改,但我知道这不是正确的方法,因为更改最终会被覆盖,我

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

检查github时,我发现其他人也有同样的问题,并且有一个简单的解决方案来解决这个问题。然而,由于未知的原因,依赖性的开发者已经声明他们不再支持它,并且会考虑它被弃用。存在修复问题的请求,但没有人可以接受这些请求

我能做的就是导航到我的供应商文件夹,自己进行更改,但我知道这不是正确的方法,因为更改最终会被覆盖,我们又回到了原点

我如何处理过时/未维护的依赖性问题,这些问题我可以自己解决,也可以在分享解决方案的其他人的帮助下解决?

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

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

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

我愿意接受其他想法,谢谢

我将添加我目前解决问题的方法。如果有人有更好的答案,我会欣然接受

在我的例子中,所讨论的存储库是一个Github存储库,我可以使用fork。然后,我可以克隆存储库并进行任何必要的更改。假设我的composer.json文件中包含以下内容

"require": {
    "someoneelse/project": "^1.0"
}
在composer.json文件中,我找到了依赖项的“someone/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现在将从我的分叉存储库获取最新版本。如果有人决定重新开始这个项目的工作,我总是可以把它改回来。该依赖项可能需要forked projects composer.json文件中的其他依赖项,请记住在需要时更新这些依赖项