【问题标题】:What to do if a Composer-loaded dependency repo doesn't exist anymore?如果 Composer 加载的依赖 repo 不再存在怎么办?
【发布时间】:2014-02-16 02:57:30
【问题描述】:

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

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

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

【问题讨论】:

  • 你会拥有它!只是没有更多的更新

标签: php git github composer-php packagist


【解决方案1】:

虽然如果您使用流行的第三方组件不太可能发生这种情况,但您的开发/生产空间中会有一个副本,因此如果它出现故障,您可以创建一个新的存储库并上传该库的副本。

如果第三方组件不是很流行并且您担心它的连续性,您可以分叉它以防万一

【讨论】:

    【解决方案2】:

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

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

    这些本地创建的版本是您自己备份和处理的,如果您从它们安装一些东西,该位置将保留在 composer.lock 文件中(它注册任何 ZIP 下载的 URL,这不是Github API URL,但您的本地 HTTP 服务器托管 Satis 文件)。

    使用 Satis,您可以进一步确保在本地环境中需要时可以访问您使用的每个软件。维护所需的所有软件包列表、不时运行 Satis 更新、拥有托管所有内容的本地 HTTP 服务器以及在您创建的每个 composer.json 文件中添加您的 Satis 存储库需要一点成本。请注意,如果他们无权访问您的 Satis 托管文件,最后一步将无法使用您的软件 - 这是一个封闭的用户组解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2021-10-21
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多