Php 我是否应该签入composer拉入的供应商文件夹中的库?

Php 我是否应该签入composer拉入的供应商文件夹中的库?,php,git,composer-php,dependency-management,Php,Git,Composer Php,Dependency Management,我已经花了几个小时寻找我问题的答案,但仍然没有找到合适的答案 基本上,我接管了一个PHP项目,该项目使用composer引入第三方库/依赖项。然而,许多依赖项不再受管理,作者可能随时从github中完全删除它们 我现在想,我应该检查整个供应商文件夹,这样即使composer不再提供这些库,我仍然会随身携带它们 或者,我可以将这些库转换为repo,让composer从我的帐户中取出。这可以接受吗 我真的希望得到一些关于处理这个问题的最佳方法的建议 提前谢谢 这实际上取决于您的项目是否需要针对可移植

我已经花了几个小时寻找我问题的答案,但仍然没有找到合适的答案

基本上,我接管了一个PHP项目,该项目使用composer引入第三方库/依赖项。然而,许多依赖项不再受管理,作者可能随时从github中完全删除它们

我现在想,我应该检查整个供应商文件夹,这样即使composer不再提供这些库,我仍然会随身携带它们

或者,我可以将这些库转换为repo,让composer从我的帐户中取出。这可以接受吗

我真的希望得到一些关于处理这个问题的最佳方法的建议


提前谢谢

这实际上取决于您的项目是否需要针对可移植性进行优化。 虽然,违反最佳实践比抱歉不可用的依赖关系更安全,但你必须花时间替换和重构她提供的…

——理论上这是可能的,但可能性不大。 从实践来看,直接连接到CVS的软件包存在的主要问题。但如果它是实时项目,您可以找到另一个代码副本来恢复功能

我是否应该在中签入整个供应商文件夹,这样即使composer不再提供这些库,我仍然会随身携带它们

我的建议是创建一个备份分支,其中包含应用程序及其所有供应商。只需执行
git checkout-b{VERSION}-backup
,然后执行
composer安装
(这会将
composer.lock
和所有依赖项锁定到定义的供应商文件夹中),然后执行
git push origin{VERSION}-backup

这允许依赖于动态包管理,只要包可以通过PackageGist获得,并且可以从其源(Github等)下载。 现在,如果一个依赖项被删除并变得不可用,您可以将其从
composer.json
中删除,并将上一个
{VERSION}-backup
分支中的代码合并到主分支中您用备份中的静态依赖项替换了动态依赖项

顺便问一下:有没有想过对你的代码进行安全审计? 对于动态拉取的依赖项,这将不起作用。安全审计是针对特定版本进行的——针对一组静态依赖项。在这种情况下,推送一个包含所有依赖项的完整应用程序是常见的,也是最佳实践。但是我们有什么:Composer在后端安装新的主题,Composer安装--没有开发--优化生产框上的自动加载以“安装”软件。现代;)

我可以把这些库转给repo,让composer从我的帐户中取出吗。这可以接受吗

对!!你也可以要求Packagist的员工移除不再维护的包装,或者将其更换或化名为新的个人叉子