我在从现有项目创建composer包时遇到问题。
目前我有一个名为auth
的项目。在那里,有src
文件夹,后跟Authentication
文件夹(文件的命名空间)。我的代码在Authentication
文件夹中。
现在,我在根目录中创建了composer.json
文件。最终结构如下
我的composer.json是
{
"name": "bikasv/auth",
"license": "MIT",
"authors": [
{
"name": "Bikas Vaibhav",
"email": "******@gmail.com"
}
],
"minimum-stability": "dev",
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-0": {
"Authentication": "src"
}
}
}
当我尝试composer install
时,它会显示nothing to install or update
。
我在这里错过了什么吗?
更新:我想要的是将这个项目作为一个作曲家包,以便其他人可以使用composer来安装它。这个包本身没有依赖性。
我尝试使用packagist和Github(虽然现在已从两个地方删除),但是当我尝试使用composer安装它时,没有安装任何内容。
更新2 :我为这个项目创建了packagist。您可以在这里查看http://packagist.org/packages/bikasv/auth
这对我来说并不合适,是的,这是我之前错误发布的composer.json。
答案 0 :(得分:1)
如果您希望此项目成为另一个项目的依赖项,那么最简单的方法是将其上传到packagist并要求它。需要'必须从您的新项目和您的“auth'然后,项目应出现在vendor / bakasv目录中。新项目中的composer.json应该看起来像下面的例子,我在编辑后改变了它。
{
"name": "bikasv/someotherproject",
"license": "MIT",
"authors": [
{
"name": "Bikas Vaibhav",
"email": "******@gmail.com"
}
],
"minimum-stability": "dev",
"autoload": {
"psr-0": {
"Someotherproject\\Namespace": "src/"
}
}
}
答案 1 :(得分:0)
在您的情况下,您在require
部分中没有依赖项,因此composer仅生成自动加载文件。当你把一些库放到require部分时,composer会尝试安装它。
答案 2 :(得分:0)
我在这里错过了什么吗?
是的,你错过了作曲家的工作方式。
当您运行composer install
命令时,composer不会将您的文件从“src”移动到“vendor”,它只是在您的“vendor”中的“require”下的composer.json中安装您列出的依赖项目录。由于您在发布的composer.json文件中没有任何依赖项,因此无需安装任何内容。
我想要的是让这个项目成为一个作曲家包,以便其他人可以使用作曲家来安装它。
将项目推送到github,然后使用github存储库URL将其添加到packagist。要测试其他人可以使用您的库,请使用composer.json文件创建一个新的本地目录,并在这个新的composer.json文件中,在“require”下,将您的库添加为依赖项:
"require": {
"bikasv/auth": "*"
}
并运行composer install
。安装过程完成后,您的库应位于“vendor”目录下。
如果这样做,下一步是了解package version,因为您应该尽可能多地标记您的库,因此其他开发人员可以使用您库的特定版本,而不是需要“*”或“DEV-发展”。
通过阅读文档中的basic usage,您可以更熟悉作曲家。
<强>更新强>
关于您的更新#2
从您添加到packagist的包中,从composer.json中删除行"bikas/auth": "*"
(这意味着您的库本身已列为依赖项)。
将更改后的composer.json推送到github后,请按以下方式进行测试:
$ mkdir -p ~/.tmp/test ; cd $_ && composer require bikas/auth dev-master
并且作曲家应该开始安装你的库。