gpt4 book ai didi

php - 使用 PHP composer 克隆 git repo

转载 作者:IT老高 更新时间:2023-10-28 11:52:35 24 4
gpt4 key购买 nike

我正在尝试使用 composer自动从 github 克隆不在 packagist 中的 git 存储库但它不起作用,我不知道我做错了什么。

我认为我必须像这样将它包含在“存储库”中:

"repositories": [
{
"url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
"type": "git"
}
],

然后可能将其列在“要求”部分。它应该类似于 this example但它不起作用。它只是给出了这个错误:

Your requirements could not be resolved to an installable set of packages.

有没有人尝试过这样做?

最佳答案

那个包其实是is available through packagist .在这种情况下,您不需要自定义存储库定义。只需确保添加 require (始终需要)具有匹配的版本约束。

一般来说,如果包在 packagist 上可用,不要添加 VCS 存储库。它只会减慢速度。


对于无法通过 packagist 获得的包,请使用 VCS (或 git)存储库,如您的问题所示。这样做时,请确保:

  • “repositories”字段在根 composer.json 中指定(它是一个 root-only 字段,来自所需包的存储库定义被忽略)
  • 存储库定义指向有效的 VCS 存储库
  • 如果类型是“git”而不是“vcs”(如您的问题),请确保它实际上是一个 git repo
  • 您有一个 require对于有问题的包裹
  • require 中的约束与 VCS 存储库提供的版本匹配。您可以使用composer show <packagename>找到可用的版本。在这种情况下 ~2.3将是一个不错的选择。
  • require 中的名称匹配远程 composer.json 中的名称.在这种情况下,它是 gedmo/doctrine-extensions .

这是一个示例 composer.json通过 VCS 存储库安装相同的包:

{
"repositories": [
{
"url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
"type": "git"
}
],
"require": {
"gedmo/doctrine-extensions": "~2.3"
}
}

VCS repo docs很好地解释了这一切。


如果有一个带有 composer.json 的 git(或其他 VCS)存储库可用,不要使用“包”存储库。包 repos 要求您在定义中提供所有元数据,并且将完全忽略任何 composer.json存在于提供的 dist 和 source 中。它们还有其他限制,例如在大多数情况下不允许正确更新。

避免软件包 repo (see also the docs)。

关于php - 使用 PHP composer 克隆 git repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12954051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com