Composer包创建问题

时间:2014-05-18 07:17:25

标签: php composer-php

我在从现有项目创建composer包时遇到问题。 目前我有一个名为auth的项目。在那里,有src文件夹,后跟Authentication文件夹(文件的命名空间)。我的代码在Authentication文件夹中。

现在,我在根目录中创建了composer.json文件。最终结构如下

  • auth(项目根目录)/
    • 的src /
      • 验证/
      • PHP文件
  • 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。

3 个答案:

答案 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

并且作曲家应该开始安装你的库。