发布PHP包到Packagist需三步:规范编写composer.json(含name、description、type、autoload、require)、推送代码至公开Git仓库(主分支为main/master并打语义化tag)、在Packagist提交仓库URL并启用webhook自动更新。

为自己开发的 PHP 包编写 composer.json 并发布到 Packagist,核心是三步:规范定义包信息、托管代码到公开 Git 仓库、在 Packagist 上提交仓库地址。只要配置准确,整个过程不复杂但容易忽略细节。
写好 composer.json:关键字段不能少
根目录下的 composer.json 是 Composer 识别和安装你的包的依据。至少要包含以下字段:
-
name:格式必须为
vendor/name(如myname/my-awesome-package),且 vendor 名需与你在 Packagist 的用户名一致 - description:简明描述功能,Packagist 会直接展示
-
type:推荐填
library(普通类库)或wordpress-plugin等特定类型 -
autoload:定义自动加载规则,最常用 PSR-4:
"autoload": { "psr-4": { "MyName\\MyAwesomePackage\\": "src/" } }
表示src/目录下对应命名空间,确保类文件路径与命名空间严格匹配 -
require:列出运行时依赖(如
"php": "^8.0"或"ext-json": "*"),避免写死版本号,用版本约束更稳妥
把代码推送到公开 Git 仓库
Packagist 不托管代码,只抓取你提供的 Git 仓库(GitHub、GitLab、Bitbucket 均可)。操作要点:
- 仓库必须是公开的(Private 仓库无法被 Packagist 抓取)
- 主分支建议命名为
main或master(Packagist 默认以此为稳定版源) - 打上语义化版本 tag(如
v1.0.0、v2.1.3),Packagist 会自动识别并生成对应版本 - 确保
composer.json在仓库根目录,且所有源码、测试、文档结构清晰
在 Packagist 上提交并启用自动更新
访问 packagist.org,登录后点击右上角 “Submit”:
立即学习“PHP免费学习笔记(深入)”;
云模块_YunMOK网站管理系统采用PHP+MYSQL为编程语言,搭载自主研发的模块化引擎驱动技术,实现可视化拖拽无技术创建并管理网站!如你所想,无限可能,支持创建任何网站:企业、商城、O2O、门户、论坛、人才等一块儿搞定!永久免费授权,包括商业用途; 默认内置三套免费模板。PC网站+手机网站+适配微信+文章管理+产品管理+SEO优化+组件扩展+NEW Login界面.....目测已经遥遥领先..
- 粘贴你的 Git 仓库 URL(如
https://github.com/myname/my-awesome-package) - 首次提交后,Packagist 会立即抓取并显示包页面;后续新 tag 推送后,需手动点击包页上的 “Update” 按钮,或更推荐启用自动更新
- 启用自动更新:进入包设置页 → 连接 GitHub/GitLab 账户 → 安装 Packagist webhook(GitHub 叫 “Packagist” app),之后每次 push tag 都会自动同步
验证和使用
发布成功后,别人就能通过 Composer 安装了:
composer require myname/my-awesome-package
你自己也可以新建测试项目验证:
- 运行
composer init创建新项目 - 执行
composer require myname/my-awesome-package - 检查
vendor/myname/my-awesome-package是否存在,尝试new MyName\MyAwesomePackage\SomeClass()是否能正常实例化
基本上就这些。重点是 name 格式对得上、autoload 配置正确、Git 公开且带有效 tag。不需要手动上传文件,也不需要注册“包名”,只要仓库可访问,Packagist 就能认出来。










