Php 编写器包创建问题
从现有项目创建composer包时遇到问题。 目前我有一个名为Php 编写器包创建问题,php,composer-php,Php,Composer Php,从现有项目创建composer包时遇到问题。 目前我有一个名为auth的项目。其中有src文件夹,然后是Authentication文件夹(文件的名称空间)。我在这个Authentication文件夹中保存了我的代码 现在,我在根目录中创建了composer.json文件。最后的结构如下 认证(项目根目录)/ src/ 认证/ PHP文件 composer.json 我的composer.json是 { "name": "bikasv/auth", "license"
auth
的项目。其中有src
文件夹,然后是Authentication
文件夹(文件的名称空间)。我在这个Authentication
文件夹中保存了我的代码
现在,我在根目录中创建了composer.json
文件。最后的结构如下
- 认证(项目根目录)/
- src/
- 认证/
- PHP文件
- src/
- 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
时,它显示无需安装或更新
我是不是遗漏了什么
更新:我想让这个项目成为一个composer包,以便其他人可以使用composer安装它。这个包本身没有依赖性
我尝试使用PackageGist和Github(虽然现在已经从这两个地方删除了),但是当我尝试使用composer安装它时,没有安装任何东西
更新2:我已为此项目创建了PackageGist。你可以看看这里
这对我来说并非始终如一,是的,它是我之前错误发布的正确的composer.json。如果您希望此项目成为另一个项目的依赖项,那么最简单的方法就是将其上载到PackageGist并要求它。必须从新项目中执行“requirement”,然后“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/"
}
}
}
在您的情况下,require
部分中没有依赖项,所以composer只生成自动加载文件。当您将一些库放到require部分时,composer将尝试安装它
我是不是遗漏了什么
是的,你们错过了作曲家的作品
当您运行composer install
命令时,composer不会将您的文件从“src”移动到“vendor”,它只是简单地安装您在composer.json中“vendor”目录中“require”下列出的依赖项。由于您发布的composer.json文件中没有任何依赖项,因此无需安装任何内容
我想要的是使这个项目成为一个composer包,以便其他人可以使用composer安装它
将项目推送到github,然后使用github存储库URL将其添加到。要测试其他人是否可以使用您的库,请使用composer.json文件创建一个新的本地目录,并在此新的composer.json文件中的“require”下,将您的库添加为依赖项:
"require": {
"bikasv/auth": "*"
}
然后运行composer安装
。安装过程完成时,库应位于“供应商”目录下
如果这样做有效,下一步就是了解,因为您应该标记库的频率,以便其他开发人员可以使用库的特定版本,而不是要求“*”或“dev developer”
通过阅读文档,您可以更加熟悉composer
更新:
关于您的更新#2
从添加到PackageGist的包中,从composer.json中删除以下行:“bikas/auth”:“*”
(这意味着您的库本身已作为依赖项列出)
将更改后的composer.json推送到github后,按如下方式进行测试:
$mkdir-p~/.tmp/test;cd$&&composer需要bikas/auth dev master
composer应该开始安装您的库。我对该项目没有外部依赖关系,因此不需要。但我不应该把我的文件复制到供应商文件夹吗?什么文件?您尚未声明要复制到供应商文件夹的任何内容。我想我的问题不是很清楚。请允许我编辑这个问题,对于由此带来的不便,我深表歉意。我已经在require字段中找到了代码bikasv/auth,但这段代码中不知何故丢失了它。我已将代码再次上载到PackageGist我试图安装您的项目,但失败了,因为您有以下行“name”:“bikasv/someotherproject”
而不是“name”:“bikasv/auth”
。请参阅我的最新答案。你意识到你的实际问题与你最初提出的问题大不相同吗?是的,对此我感到非常抱歉。这是我真正的问题,但第一次没能正确地表达出来。请看这里以正确地遵循目录结构-仅仅因为我漏了一行,直接的意思是你很粗鲁,先生。我知道它是如何工作的,我遗漏了一些东西,因为我已经为我的公司托管了很多软件包。不管怎么说,你的回答目前除了严厉之外毫无用处。@BikasVaibhav,这不是你的本意。如果你觉得我的帖子很粗鲁,我很抱歉。在最初的回复中查看我的更新。我会在我的电脑上尝试一下。以后会更新删除实际有效的行。另外,我使用*而不是devmaster
。现在可以用了,谢谢。