发布自己的Composer包
准备工作
1>. 注册一个Packagist账号,即Composer官方账户
2>. 创建一个公网Git代码仓库
注:请不要使用coding.net等国产git仓库,因为在使用composer install安装时,.gitattributes文件的定义在这些仓库中是无效的;因此请务必将需要发布为composer包的项目放在github上;
创建 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"}}
以GitHub为例,配置如下:( 此处选择在代码推送、迭代(Tag)更新时触发 )