Composer 的 PHP 依赖库提交教程

Composer 的 PHP 依赖库提交教程

Composer 注册登录问题

注册账号,可能会有js 错误,验证码刷不出来等问题,国内网络访问受限造成。要么科学上网,要么使用 github 账号进行登录即可。

Vendor name 命名

composer 的name 配置很重要!!!

name 的组成由 [vendor name]/[包名],尤其 vendor name 要求必须由占有这个 vendor 的用户才有权限使用。

例如:A 用户提交了个包 name:php/package-name,那么这个 php 就只能由这个用户来使用,别的用户在提交name 中含有 php/xxx 前缀的包时候,是无法提交的。

这个 vendor name 跟 github 的组织没有什么关系,但是如果创建的话,最好保持一致,这样识别度更高。

如果 vendor name 是以上被占用的情况,则会有类似如下提示:

markdown 复制
The vendor name "swoft-ext(这里看你提交项目中 compoer.json 中的 vendor anme)" was already claimed by someone else on Packagist.org. You may ask them to add your package and give you maintainership access. If they add you as a maintainer on any package in that vendor namespace, you will then be able to add new packages in that namespace. The packages already in that vendor namespace can be found at swoft-ext.If those packages belong to you but were submitted by someone else, you can contact us to resolve the issue.

github 同步更新

用到两个重要信息:

  • username:https://packagist.org/profile/ 查看资料,可以看到两个 apiToken
    • Main API Token:这个一般用在比较私密的环境,比如外人无法访问到的代码中进行请求
    • Safe API Token:这个比如用在 js 代码中访问,或者 github 访问。
    • Rotate API Token:如果泄露了,可以使用这个功能,重置 token,当然所有使用旧 token 的地方得重新更换
  • apiToken:
php 复制
https://packagist.org/api/update-package?username=[用户名]&apiToken=[你的packagist站点api接口token]

包发布成功

发布后快的话几分钟就能通过 https://packagist.org/ 或者 composer search 搜索到相应的包。注意,如果本地 composer 使用了阿里的镜像,可能镜像的更新频率要低。在你反复进行版本提交更新的时候,镜像可能不一定是最新的。这时候可以将本地 composer 改成原站点,即可查看到更新后的包。

发布新版本

每次发布新版本可以通过 tag 进行标记。注意 composer.json 的 version 必须与当前版本保持相同。