发布自己的Composer包

准备工作

1>. 注册一个Packagist账号,即Composer官方账户

2>. 创建一个公网Git代码仓库


创建 composer.json 配置文件

1.0> 将Git代码克隆到本地,并执行如下命令生成 composer.json 文件

composer init

2.0> 配置 composer.json 文件

{
    "name": "sidoc/php-tool-library",  
    "description": "PHP自定义代码工具库",
    "license": "MIT",
    "authors": [
        {
            "name": "YANGWW",
            "email": "512113110@qq.com"
        }
    ],
    "require": {
      "php":">=7.2.0"
    },
    "autoload": {
        "psr-4": {
            "sidoc\\": "src/"
        }
    }
}

配置项详解:(可参考官方文档)

name:是 composer 包的名称,一般以 厂商名称/Compoer包名 的方式命名

require:依赖的其它第三方

autoload:配置自动加载映射,PSR-4是推荐的自动加载方式,在PSR-4中定义从命名空间到路径的映射;

以上配置中没有Composer包的版本信息,是因为Composer会自动从Git、SVN等的Tag信息中推断出版本号,官方也建议开发者忽略版本号,由Composer自动推断;

所以,如果你提交的代码没有打Tag,那么Composer就找不到版本号,使用者也就无法安装你的Composer包。



Composer 包项目代码结构

src:包代码

tests:单元测试

vendor:三方依赖

首次单元测试前,要像正常的PHP项目一样执行一下 composer install


发布Composer包

1>. 登录Packagist官网账户

2>. 点击顶部导航条中的Summit按钮,输入Git仓库地址,然后点击Check按钮:

手动更新Composer包

1>. 登录Packagist官网账户

2>. 打开已发布的 Composer 包,点击“update”即可


自动更新Composer包

1>. 登录Packagist官网账户,进入 个人中心 -> profile ,然后获取 token ;

2>. 配置Git仓库的 Webhook,设置在代码推送时自动调用如下链接,以通知 Packagist 更新 Composer 包

## POST请求如下链接
https://packagist.org/api/update-package?username=YANGWW&apiToken=*************

## Body raw参数:( 参数中的url是你的composer包的地址 )
{"repository":{"url":"https://packagist.org/packages/sidoc/php-tool-library"}}

以Coding.net为例,配置如下:( 此处选择在代码推送、迭代(Tag)更新时触发 )


详见Packagist官网自动更新


举报

© 著作权归作者所有


1