PHP 发布自己的composer包
在[Packagist](https://packagist.org/)上发布自己的PHP composer包最科学的方式应该就是通过github了,本文将结合实战图文讲述具体的操作流程...
在Packagist上发布自己的PHP composer包最科学的方式应该就是通过github了,本文将结合实战图文讲述具体的操作流程。
-
在你的github上新建一个仓库,这里我们创建一个名为
my-package
的仓库。
-
将远程仓库克隆到本地,然后我们需要在本地仓库添加一些文件。最重要的一个文件是composer.json,我们可以直接新建这个文件并编写,当然我们还可以使用
composer init
命令按步骤自动生成。
解释下几个步骤:
- Package name,也就是包名包含2部分,<供应商名称>/<包的名称>,一般来说供应商名可以填写你的github用户名。
- Require,可以看到在图中我们并没有设置require字段,我建议如果你知道你的代码依赖自己在composer.json生成后手动添加,因为在
composer init
中操作会去搜索你需要的包,比较耗时。
最终我们生成的composer.json文件应该是这个样子的。
{
"name": "sidfate/my-package",
"description": "This is a test",
"license": "MIT",
"authors": [
{
"name": "Sidfate",
"email": "sidfate@163.com"
}
],
"require": {
"php": ">=5.3.0"
}
}
接着你还可以在本地仓库中添加一个LICENSE以及README.md,当然还有你的包代码。那么现在我们的本地仓库应该是下面图中的样子,然后我们提交文件到远程仓库。
3.接下来我们就要前往Packagist。首先登陆,我们可以直接使用github账号登陆。然后点submit,通过github提交包。
点check它会检验包的合法性,如果出现错误,根据它的提示做出修改即可。如果你按照上述步骤坐下来,check应该不会有问题,结果应该跟下图一样。
点击submit我们的包就提交成功了。
在上图中我们可以看到2个问题:
Fisrt Issue
有一个提示说This package is not auto-update
,这个说的是一个自动更新的功能没有开启,就是当你github上的代码修改后,Packagist上对应的包的代码不会更新修该。下面我们还说下设置自动更新的方法,官方的详细文档在这里。
- 点开github上
my-package
仓库的Setting选项,选择Integrations & services
,搜索“Packagist”。
2.然后你需要填写User和Token。注意User字段应该填写你之前设定的服务商的名称。在这里例子中我们填写sidfate,而不是Sidfate,前者是供应商名称,后者是我github的用户名,它是大小写敏感的,所以这里一定要注意。Token字段你可以在Packagist上的个人信息中找到。
设置好之后自动更新的功能就完成了。
Second Issue
其实到现在我们已经可以用composer安装自己的包了,但是你得加上dev-master,因为你的包还是开发版本的。
composer require sidfate/my-package:dev-master
可以通过在github上创建版本来发布正式版本。点击my-package
仓库中的releases,创建一个版本。
创建完成后就可以看到在Packagist中多了一个正式版本。
总结
至此我们自己的composer包就发布完成了,如果你在途中遇到什么问题可以在该文下评论留言:)。