我正在尝试创建一个新的作曲家库包。 我使用
创建了composer.json文件 composer.phar create-project xlix vendor/xlix/xlix 0.3
命令。
在文件系统中,文件composer.json存在于vendor/xlix/xlix
下,出于测试目的,我将其复制到vendor/xlix
。
composer.json文件内容如下:
{
"name": "xlix/xlix",
"type": "library",
"description": "XLIX package",
"keywords": ["core"],
"homepage": "http://myhomepage",
"license": "GPL",
"authors": [
{
"name": "Florian Kasper",
"email": "florian.kasper@mymail"
}
],
"require": {
"php": ">=5.2.4"
},
"autoload": {
"psr-0" : {
"Xlix\\Bundle" : "lib/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.0"
}
}
}
然后我尝试了以下命令:
git:(master) ✗ php composer.phar require xlix/xlix
git:(master) ✗ php composer.phat require vendor/xlix
...
git:(master) ✗ php composer.phar install vendor/xlix
git:(master) ✗ php composer.phar install xlix/xlix
...
每次输出相同的内容:
Please provide a version constraint for the xlix/xlix requirement: *
composer.json has been updated
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package xlix/xlix could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
在我的 ROOTDIR / composer.json 文件中,包已在require部分注册。
"jms/security-extra-bundle": "1.2.*",
"jms/di-extra-bundle": "1.1.*",
"kriswallsmith/assetic": "1.1.*@dev",
"xlix/xlix": ">=0.*"
现在我处于绝望的边缘,不知道该怎么做。
问题:
我犯过什么错误,或者我错过了什么?
答案 0 :(得分:4)
软件包存在于互联网上,而不是文件系统上。
默认情况下,Composer会在packagist和does not exists上搜索名为xlix/xlix
的包。您可以使用repositories
配置添加更多软件包存储库,更多信息请参见the documentation。
因此,为了要求您的包与作曲家一起使用,您需要在某处上传xlix
目录。
我在lxix
目录中看不到你想要做什么?您在lxix
包中,为什么要在同一个包中要求它?看起来你不明白这些命令的作用以及作曲家的工作原理。也许在他们自己的文档中阅读很好 - 或者关于Composer的其他一些教程(如nettuts+上的那篇) - 将帮助你更好地理解作曲家。