答案:创建Composer包需准备项目结构、编写composer.json、推送至GitHub并发布到Packagist。具体步骤为:构建含src、composer.json等文件的标准目录,配置composer.json中的名称、自动加载和依赖信息,将代码推送到GitHub仓库并打v1.0.0标签,登录Packagist提交仓库URL,设置Webhook实现自动更新,最后通过composer require安装使用。

准备你的项目结构
一个标准的 Composer 包需要清晰的目录结构和必要的文件。基本结构如下:
例如,你的项目根目录可能长这样:
/my-awesome-package ├── src/ │ └── Calculator.php ├── composer.json ├── README.md └── LICENSE
编写 composer.json 文件
这是最关键的一步。composer.json 定义了包的基本信息、自动加载方式和依赖关系。
示例内容:
{
"name": "your-username/my-awesome-package",
"description": "A simple calculator package",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Your Name",
"email": "you@example.com"
}
],
"require": {
"php": "^7.4 || ^8.0"
},
"autoload": {
"psr-4": {
"MyAwesomePackage\\": "src/"
}
},
"minimum-stability": "stable",
"prefer-stable": true
}
注意:
-
name 格式为
用户名/包名,这必须与你在 Packagist 上的账户一致 - autoload.psr-4 定义命名空间映射,确保类能被正确加载
- 提交前运行
composer validate检查语法是否正确
托管到 GitHub 或 GitLab
Packagist 会从 Git 仓库拉取你的包,所以你需要将代码推送到公开平台。
- 创建一个新的 GitHub 仓库(比如:
my-awesome-package) - 初始化 git 并推送代码:
git init git add . git commit -m "Initial release" git remote add origin https://github.com/your-username/my-awesome-package.git git push -u origin main
然后打一个版本标签,比如:
GForge是一个基于Web的协同开发平台。它提供一组帮助你的团队进行协同开发的工具,如论坛,邮件列表等。用于创建和控制访问源代码管理库(如CVS,Subversion)的工具。GForge将自动创建一个源代码库并依据项目的角色设置进行访问控制。其它工具还包括:管理文件发布,文档管理,新闻公告,缺陷跟踪,任务管理等。
git tag v1.0.0 git push origin v1.0.0Packagist 推荐使用语义化版本(Semantic Versioning)。
发布到 Packagist
访问 https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19 并登录(支持 GitHub 登录)。
- 点击右上角“Submit”
- 输入你的仓库 URL(如:
https://github.com/your-username/my-awesome-package) - 点击“Check”然后“Submit”
Packagist 会抓取你的 composer.json 信息并展示你的包。
你还可以设置 Webhook,让 Packagist 在你推送新标签时自动更新:
- 在 GitHub 仓库中进入 Settings → Webhooks
- Add webhook
- Payload URL:
https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19/api/github - Content type:
application/json - Events: 选择 “Just the push event” 或 “Let me select individual events”,勾上 “Create”
使用你的包
发布成功后,任何人都可以通过 Composer 安装:
composer require your-username/my-awesome-package
在代码中使用命名空间引入类:
use MyAwesomePackage\Calculator; $calc = new Calculator();基本上就这些。只要你的 composer.json 正确、Git 标签清晰、命名空间匹配,整个流程很顺畅。维护好 README 和版本更新日志,会让你的包更受欢迎。









