当我想要我的项目时,会出现以下错误:
在任何版本中都找不到请求的包mvc-php / framework,包名中可能有拼写错误。
" mvc-php / framework"是一个git文件夹。
{
"name": "mvc-php/app",
"repositories": [
{
"type": "path",
"url": "/Users/youri/Documents/Github/framework"
}
],
"require": {
"php": ">=7.0",
"mvc-php/framework": "master"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
我想要的项目:
{
"name": "mvc-php/framework",
"description": "PHP MVC framework",
"autoload": {
"psr-4": {
"Mvc\\" : "src/"
}
},
"require": {
"php": ">=7.0"
}
}
答案 0 :(得分:12)
您必须要求branchName@dev
https://getcomposer.org/doc/articles/versions.md#branches
{
"name": "mvc-php/app",
"repositories": [
{
"type": "path",
"url": "/Users/youri/Documents/Github/framework"
}
],
"require": {
"php": ">=7.0",
"mvc-php/framework": "master@dev"
},
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
答案 1 :(得分:9)
在任何版本中都找不到请求的包X / Y.
请求的包需要是一个包含已提交和现有composer.json
文件的git文件夹。然后,要引用特定分支,您需要添加dev-
前缀,因此dev-master
,不是master
。
以下是最小的工作示例:
文件: composer.json
{
"require": {
"local/my_package": "dev-master"
},
"repositories": [
{
"packagist.org": false
},
{
"type": "path",
"url": "my_package/"
}
]
}
文件: my_package/composer.json
{
"name": "local/my_package",
"require-dev": {
"symfony/console": "*"
}
}
注意:上面的文件位于本地Git存储库下。要创建一个,请运行:git init && git commit -am 'Files'
。
要解决此问题,请运行:
composer install -vvv
另请考虑运行:composer diagnose
以识别常见的 Composer 错误。
答案 2 :(得分:5)
由于这是在Google上搜索错误文字时的第一个回复,我也会在此处提出修正案,尽管与OP没有100%的相关性。
当您需要回购时,您需要确保您的requires语句与项目的composer.json中项目的名称相匹配。
因此,如果框架项目中的名称为"name": "mvc-php/app-framework",
,则需要为:
"require": {
"mvc-php/app-framework": "dev-master"
},
当您添加git repo时,这更适用。特别是在分叉时,有时git url可能与composer.json名称不同。
此外(这是与OP相关的部分),您现在需要时dev-branch_name
而不是branch_name@dev
。我不知道什么时候改变了,或者旧的方法是不可用的。但这就是现在的作曲家文档现在所说的。
如果您希望Composer签出分支而不是标签,则需要使用特殊的
dev-*
前缀将其指向分支 <子> Composer Documentation - Versions and Constraints - Branches 子>
答案 3 :(得分:3)
我更改了我开发的程序包的名称,而只是在其中测试了一个分支。我遵循了上面提到的所有正确的命名约定,但仍然遇到了给定的错误。
事实证明,要获取名称更改,即使您是,也必须更新软件包回购主分支(对我来说composer.json
)上Master
中的软件包名称不在项目中使用该分支。
答案 4 :(得分:0)
请务必注意,如果不将自己的镜像源添加到全局变量,则在找不到子场景的地方会发生错误。 您可以在composer.json中添加它:
"repositories":[
{
"type":"composer",
"url":"https://packag"
}
],