首先确保项目包含正确配置的composer.json文件,内容需涵盖名称、描述、许可证、自动加载规则及依赖;接着将代码推送到gitHub等公共仓库并打上版本标签如v1.0.0;然后访问packagist.org登录后点击Submit提交仓库URL,确认信息无误即可发布;最后为实现自动更新,可在github仓库中添加Packagist提供的webhook地址,绑定Packagist账号与API令牌,启用推送自动同步。完成后他人可通过composer require命令安装使用。
要将你的 php 包发布到 Packagist,使其可以通过 Composer 安装,整个过程其实并不复杂。只要你的代码托管在 GitHub、gitlab 或 Bitbucket 等公共平台,就可以轻松完成发布。下面一步步说明如何操作。
准备你的 Composer 包
确保你的项目已经正确配置了 composer.json 文件,这是 Composer 识别和安装包的核心文件。基本内容应包括:
- name:格式为 vendor/package-name(例如:myname/my-awesome-package)
- description:简短描述你的包功能
- type:通常是 library
- license:如 MIT、apache-2.0 等
- autoload:定义自动加载规则,比如使用 PSR-4
- require 和 require-dev:声明依赖
示例 composer.json:
{ "name": "myname/my-awesome-package", "description": "A simple PHP utility package", "type": "library", "license": "MIT", "authors": [ { "name": "Your Name", "email": "you@example.com" } ], "autoload": { "psr-4": { "MyNameMyAwesomePackage": "src/" } }, "require": { "php": "^7.4 || ^8.0" } }
确认文件无误后,提交到你的 Git 仓库(如 GitHub)。
推送代码到公共 Git 仓库
Packagist 需要能访问你的代码。推荐使用 GitHub:
- 创建一个新的仓库(如 my-awesome-package)
- 推送你的代码,包含 composer.json
- 打一个版本标签,例如 v1.0.0(Packagist 会读取标签作为发布版本)
打标签命令:
git tag -a v1.0.0 -m "First stable release" git push origin v1.0.0
提交包到 Packagist
访问 https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19 并登录(支持 GitHub 登录)。
- 点击右上角的 “Submit” 按钮
- 粘贴你的仓库 URL(如 https://github.com/myname/my-awesome-package)
- 点击 “Check” 按钮,Packagist 会抓取 composer.json 信息
- 确认无误后点击 “Submit”
提交成功后,你的包就会出现在 Packagist 上,别人就可以通过以下命令安装:
composer require myname/my-awesome-package
启用自动更新(可选但推荐)
为了让 Packagist 在你推送新标签时自动同步,需要设置 webhook。
Packagist 提供了一个通用 webhook 地址:
https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19/api/github?username=YOUR_PACKAGIST_USERNAME&apiToken=YOUR_API_TOKEN
将它添加到 GitHub 仓库的 Webhooks 中(Settings → Webhooks → Add webhook),事件选择“Just the push Event”即可。
这样每次你 push 新标签,Packagist 就会自动更新。
基本上就这些。你的包现在已上线,全球开发者都可以通过 Composer 使用它。保持文档清晰、版本规范,后续维护更轻松。