Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Composer php Can';不要用Composer替换软件包_Composer Php - Fatal编程技术网

Composer php Can';不要用Composer替换软件包

Composer php Can';不要用Composer替换软件包,composer-php,Composer Php,我对上游库进行了改进(尚未合并),这是我所依赖的另一个包的依赖项 为了强制Composer使用我的包而不是上游包,我尝试了以下方法: 我找到了我的库分支(分支名称:缓存到string),并更新了它的composer.json: "name": "benmorel/guzzle-psr7", "replace": { "guzzlehttp/psr7": "1.6.*" } 我更新了项目的composer.json以使用我的fork: "repositories": [ {

我对上游库进行了改进(尚未合并),这是我所依赖的另一个包的依赖项

为了强制Composer使用我的包而不是上游包,我尝试了以下方法:

  • 我找到了我的库分支(分支名称:
    缓存到string
    ),并更新了它的
    composer.json

    "name": "benmorel/guzzle-psr7",
    "replace": {
      "guzzlehttp/psr7": "1.6.*"
    }
    
  • 我更新了项目的
    composer.json
    以使用我的fork:

    "repositories": [
      {
        "type": "vcs",
        "url": "https://github.com/BenMorel/psr7"
      }
    ],
    "require": {
      "benmorel/guzzle-psr7": "dev-cache-to-string"
    }
    
并运行了
composer update
,失败原因如下:

无法将您的需求解析为可安装的软件包集

问题1

  • 在任何版本中都找不到请求的程序包benmorel/guzzle-psr7,程序包名称中可能有输入错误

如何解决此问题?

您不需要更改fork中的包名。您根本不需要更改fork的
composer.json
。您只需将fork添加到repositories部分,并更改所需包的约束以使用您的dev分支:

"repositories": [
  {
    "type": "vcs",
    "url": "https://github.com/BenMorel/psr7"
  }
],
"require": {
  "guzzlehttp/psr7": "dev-cache-to-string as 1.6.1"
}
Composer将从您的存储库中按版本覆盖原始的http/psr7包


如果某些其他软件包需要
guzzlehttp/psr7
-
dev缓存到字符串
将不匹配
^1.4
,则可能需要为分支使用别名。如果您使用
dev cache将字符串设置为1.6.1
作为约束,您的分支将被检测为
1.6.1
release。

您不需要更改fork中的包名。您根本不需要更改fork的
composer.json
。您只需将fork添加到repositories部分,并更改所需包的约束以使用您的dev分支:

"repositories": [
  {
    "type": "vcs",
    "url": "https://github.com/BenMorel/psr7"
  }
],
"require": {
  "guzzlehttp/psr7": "dev-cache-to-string as 1.6.1"
}
Composer将从您的存储库中按版本覆盖原始的http/psr7包


如果某些其他软件包需要
guzzlehttp/psr7
-
dev缓存到字符串
将不匹配
^1.4
,则可能需要为分支使用别名。如果您使用
dev cache将字符串设置为1.6.1
作为约束,您的分支将被检测为
1.6.1
release。

为什么更改fork中的包名?因为
guzzlehttp/psr-7
不是我直接使用的,而是我的一个依赖项引用的,它需要特定的版本,因此,我认为我必须
替换:
原始包,这需要我提供另一个包名。但我可能完全错了,你还有别的建议吗?你不需要改名字。您根本不需要更改fork的
composer.json
,只需将fork添加到
存储库
部分,并更改所需包的约束以使用您的开发分支:
“guzzlehttp/psr7”:“开发缓存到字符串”
。Composer将使用您的存储库(fork)中的
guzzlehttp/psr7
。这就是问题所在:如果我这样做,Composer会抱怨它找不到适合
space/crawler
要求的合适版本(
^1.4
)。您可能需要使用别名作为约束:
“guzzlehttp/psr7”:“开发缓存到字符串为1.6.1”
。为什么要更改fork中的包名?因为我没有直接使用http/psr-7,而是由我的一个依赖项引用,它需要特定的版本,所以我想我必须
替换:
原始包,这需要我提供另一个包名。但我可能完全错了,你还有别的建议吗?你不需要改名字。您根本不需要更改fork的
composer.json
,只需将fork添加到
存储库
部分,并更改所需包的约束以使用您的开发分支:
“guzzlehttp/psr7”:“开发缓存到字符串”
。Composer将使用您的存储库(fork)中的
guzzlehttp/psr7
。这就是问题所在:如果我这样做,Composer会抱怨它找不到适合
space/crawler
要求的合适版本(
^1.4
)。您可能需要使用别名作为约束:
“guzzlehttp/psr7”:“开发缓存到字符串为1.6.1”
。非常好。非常感谢。杰出的非常感谢。