发布composer包到packagist及其auto-update和版本管理

PHP使用 composer 来管理工具包,比如我最近需要一个alipay的支付宝,官方只是提供了一个写得有些乱的 sdk 供参考。只能自己动手了,刚好记录一下发布一个自己的 composer 包的一般步骤。

标准的composer.json

在自己的包根目录新建一个 composer.json ,信息大概是这样的:

{
  "name": "ducksoft/alipay-php-sdk",
  "description": "official alipay php sdk",
  "type": "library",
  "homepage": "http://github.com/hsu1943/alipay-php-sdk",
  "authors": [
    {
      "name": "hsu1943",
      "email": "osnail1943@gmail.com"
    }
  ],
  "keywords": [
    "alipay",
    "alipay sdk",
    "alipay php sdk"
  ],
  "license": "MIT",
  "require": {
    "php": ">=7.1.0"
  },
  "autoload": {
    "psr-4": {
      "duckSoft\alipay\": "src"
    }
  }
}

如果不想手动创建,也可以使用 compser init 命令来,根据提示填就可以了。

.gitgnore文件

composer 包内建议包含一个git忽略文件,内容根据开发和测试需要设置,一般:

/vendor/
.idea

composer install 测试

代码开发完,需要测试包,直接在根目录下运行

composer install

可以看到自动生成的 vender 文件夹及相关的加载 autoload 等文件,可以在 example 下测试一下包的引入使用等。

下面就剩把规范的包发布到 packagist 流程了。

GitHub仓库

开发好的软件包上传到 GitHub 仓库,仓库需要 Public 权限对外开放访问。

packagist 关联 GitHub

去https://packagist.org/使用GitHub账户授权登陆,或者注册账号之后在账户 Setting 里关联GitHub账户。

Submit 发布

登录后在 Submit 栏目下填入 github 仓库地址,check一下,然后就发布成功了。

发布composer包到packagist

auto-update

关于更新你发布的包,这个帮助页面(https://packagist.org/about#how-to-update-packages)很好的讲解了多种需求的方案,我们是通过Github 授权登录,所以已经获取了所需权限,所以你自己的GitHub仓库应该已经可以 auto-update 自动更新了,在包页面的右下角有绿色提示。

如果这里提示不是 auto-update ,参考上面帮助页面,可以在 Github 仓库的 Setting => Webhooks 下新增 Webhook,填入 packagist 的一些信息和 TOKEN(从 packagist 的 Profile 中 Show API Token获取)即可。

packagist包的auto-update

管理版本 versions

对应 composer 中的版本需求,根据上面提到的帮助页面(https://packagist.org/about)提到的,有这几点:

  • 版本将从代码库中的tag标签自动获取

  • 以下都是有效的标签/版本:

    1.0.0
    v1.0.0
    1.10.5-RC1
    v4.4.4beta2
    v2.0.0-alpha
    v2.0.4-p1
    
  • 如果不指定版本(标签),将自动使用 dev 作为版本,但还是建议参考语义版本管理来发布标签/版本。

GitHub标签/版本管理:

# 查看tag
git tag
# 创建tag
git tag 1.0.0
# 带comment信息创建tag
git tag -a 1.0.0 -m "comment"
# 发布所有tags
git push origin --tags
# 删除本地 tag
git tag -d
# 删除远端 tag
git push origin :refs/tags/1.0.0

这样当前的这个 commit 就被打上了标签,相应的, packagist 就有了这个1.0.0版本。

上面提到的支付宝 php-sdk 发布到了仓库:https://github.com/hsu1943/alipay-php-sdk。

使用:

composer require ducksoft/alipay-php-sdk

标题:发布composer包到packagist及其auto-update和版本管理

原文链接:https://beltxman.com/3402.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top