如果不再存在Composer加载的依赖项repo,该怎么办?

时间:2014-01-24 23:06:31

标签: php git github composer-php packagist

目前几乎整个基于packagist.org的依赖加载都依赖于基于GitHub的repos。但GitHub用户有可能删除公共存储库,这导致了一个问题:

如果不再存在必要的Composer加载依赖项(或被故意破坏等删除)该怎么办?是否存在可以提供长期服务的档案?

Afaik packagist.org(尚未)托管任何数据,GitHub也不会保留已删除或重命名的存储库的公开副本。

2 个答案:

答案 0 :(得分:3)

这就是Satis发挥作用的地方。使用Satis,您可以从“packagist.org”创建所需包的本地副本,还可以创建在线找到的所有版本的本地下载ZIP版本。

这带来了在本地网络中托管的额外好处,因此访问它时速度更快,并且只要您的在线连接中断,或者Github遇到问题或其他任何问题,您就可以使用本地副本。

这些本地创建的版本是您自己备份和保管的,如果您安装了这些版本,该位置将保留在composer.lock文件中(它会记录从任何ZIP下载的URL,这是不是Github API URL,而是托管Satis文件的本地HTTP服务器。)

使用Satis,您可以确保您在本地环境中需要时可以访问您使用的每个软件。这需要花费一点费用来维护所需的所有软件包列表,偶尔运行Satis更新,让本地HTTP服务器托管所有内容,并在您创建的每个composer.json文件中添加Satis repo 。请注意,如果最后一步无法访问您的Satis托管文件,则无法使用您的软件 - 这是一个封闭的用户组解决方案。

答案 1 :(得分:1)

虽然使用流行的第三方组件时不太可能发生,但您将在开发/生产空间中获得一份副本,因此如果它发生故障,您可以创建一个新的存储库并上传该库的副本。

如果第三方组件不是很受欢迎,而您担心它的连续性,您可以将它分叉以防万一