我看过的所有文档,教程和论坛都是关于设置客户端composer.json来下载其他人的软件包,但我正在尝试设置自己的软件包,ZF2模块,所以我可以包含他们在多个项目中。这是我的hello-world尝试。我有一个依赖于shiny-lib存储库的闪亮休息存储库,我想用数字(al?)版本号指定依赖项。 shiny-rest的composer.json:
{
"name": "shinymayhem/shiny-rest",
"description": "REST with JSON, XML and api-problem style errors",
"license": "Apache 2.0",
"authors": [
{
"name": "Reese Wilson",
"email": "EMAIL"
}
],
"extra": {
"branch-alias": {
"dev-master": "0.0.x-dev"
}
},
"require": {
"shinymayhem/shiny-lib": "0.0.*",
"zendframework/zendframework": "2.*"
},
"repositories": [
{
"url": "https://github.com/shinymayhem/shiny-lib",
"type": "git"
}
],
"autoload": {
"psr-0": {
"ShinyRest": "src"
},
"classmap": [
"Module.php"
]
}
}
shiny-lib的composer.json:
{
"name": "shinymayhem/shiny-lib",
"description": "Base lib with Xml2Array trait",
"license": "Apache 2.0",
"authors": [
{
"name": "Reese Wilson",
"email": "EMAIL"
}
],
"extra": {
"branch-alias": {
"dev-master": "0.0.x-dev"
}
},
"require": {
"zendframework/zendframework": "2.*"
},
"autoload": {
"psr-0": {
"ShinyLib": "src"
},
"classmap": [
"Module.php"
]
}
}
当我需要在我的客户端的composer.json(包括最小稳定性:dev)上使用shiny-rest:dev-master时,它会正确解析光泽休息库,但后来会说
shinymayhem/shiny-rest dev-master requires shinymayhem/shiny-lib 0.0.* -> no matching package found.
我尝试过几个不同的东西,比如关注documentation at getcomposer.org,或者尝试复制其他作为作曲家包的存储库,但我只是在猜测和检查。如何在源包composer.json中指定版本和依赖项以及别名?某处有一些好的文件吗?
答案 0 :(得分:1)
您客户的composer.json需要包含闪亮库的存储库行:
"repositories": [
{
"url": "https://github.com/shinymayhem/shiny-lib",
"type": "git"
}
],
当您在其他项目中包含该lib时,将忽略shiny-rest
composer.json中的存储库行 - 只能在根composer.json中指定其他存储库。这是Composer中的一项安全功能,可防止第三方库指定覆盖其他第三方库的标准存储库。