如何开发一个composer包?


如果你想开发一个 composer 包,你可以按照如下步骤进行:

1. 创建一个空的代码库

首先,你需要创建一个空的代码库,如下图所示:
image.png
创建成功后,将代码拉到本地,如下图所示:

$ git clone https://github.com/RenzcPHP/composer_test.git

image.png

2. 填写 composer.json 文件

接着,可手动创建composer.json文件,或者命令行执行 composer init 来创建一个 composer.json 文件。
在 composer.json 文件中填写一些基本信息,例如包名、版本号、描述、依赖包名等。具体可以参考官方文档:https://getcomposer.org/doc/04-schema.md
创建composer.json文件有两种方式,建议采用下面方式二来完成创建
方式一、手动创建composer.json文件,输入以下内容并保存,再手动创建src目录

{
  "name": "vendor/package",
  "description": "A description of the package.",
  "license": "MIT",
  "type": "package",
  "authors": [
    {
      "name": "Your Name",
      "email": "your@email.com"
    }
  ],
  "require": {
    "php": ">=7.1"
  },
  "autoload": {
    "psr-4": {
      "Vendor\\Package\\": "src/"
    }
  }
}

方式二、利用 composer init 命令自动创建composer.json文件和src源代码目录,如下图所示

vendor目录是为了引入自动加载,方便本地引入自动加载文件,快速进行本地开发调用,vendor目录不用提交到git版本库进行管理

image.png

3. 开发代码

然后,需要在src目录下编写你的代码,包括所有需要的类、函数等。注意在命名时,需要遵循 PSR-4 规范,例如命名空间、类名、方法名等。
如下是简单实现的一个测试类,以及调用方式、执行输出效果。image.png

4. 上传到Github

可以使用 git 版本工具将代码推送合并到GitHub代码库中。在你的项目根目录下,将代码push到Github上,即可完成代码上传。

5. 发布到Packagist

登录 Packagist,点击“Submit”按钮,输入 github 仓库的地址,点击“Check”,会列举出存在的类似包名,所以在开发阶段就需要确定包名的唯一性,避免出现Packagist平台已存在的包名。Check没问题就可以点“Submit”提交发布到Packagist平台了。
image.png
image.png
Submit之后代码就发布到Packagist平台了,就可以将自己的composer包开源共享给广大网友使用了。如下图所示
image.png
为了方便代码提交合并到GitHub能立即生效自动重新发布到Packagist平台,需进行如下配置:
在“https://packagist.org/profile/”查出“Your API Token”,如下图所示
image.png

将“https://packagist.org/api/bitbucket?username=RenzcPHP&apiToken=suHrUCrSB****n10WN7l”链接配置到如下项目配置“Webhooks”中,如下图所示,提交后就配置好了packagist包自动更新机制了。image.png
配置好后可以在packagist平台看到当前包的最新状态如下所示
image.png

6. 打tag标签

为了包版本稳定,我们对测试没问题的包打个tag,发布到packagist,方便根据版本去引用对应包,

#打上标签并加注释
git tag -a "v1.0.1" -m "my first composer package"

#push标签到远程代码仓库,之后GitHub上就可以看到当前tag了
git push origin v1.0.1

打标签之后packagist上可以看到最新tag版本,如下图所示。
image.png
之后就可以顺利执行composer命令安装composer包了,如下

composer require burning/my-first-composer

至此,就完成了composer包从创建、开发、提交、发布、打tag等整个流程的走通。之后就可以愉快的安装composer包进行引用开发了。

posted @ 2023-01-03 17:16  才鱼  阅读(773)  评论(0编辑  收藏  举报