创建PHP包需组织代码并编写composer.json;2. 将项目推送到GitHub并打标签;3. 提交仓库地址到Packagist,他人即可通过composer require安装使用。

创建并发布自己的 Composer 包其实并不复杂,只要掌握基本流程。你只需要写一段可复用的 PHP 代码,打包成符合 Composer 规范的结构,然后提交到 Packagist,其他人就能通过 composer require 安装使用。
准备你的 PHP 包
一个 Composer 包本质上是一个带有 composer.json 文件的 PHP 项目。你需要先组织好代码结构。
假设你要创建一个叫 my-first-package 的工具包,用于处理字符串反转:
- 创建项目目录:
mkdir my-first-package && cd my-first-package - 初始化目录结构:
my-first-package/ ├── src/ │ └── StringHelper.php ├── composer.json └── README.md - 在
src/StringHelper.php中写个简单类:
配置 composer.json
这是最关键的文件,它告诉 Composer 包名、依赖、自动加载方式等信息。
运行 composer init 并按提示填写,或手动创建 composer.json:
{
"name": "your-vendor/my-first-package",
"description": "A simple package to reverse strings",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Your Name",
"email": "you@example.com"
}
],
"require": {
"php": "^7.4 || ^8.0"
},
"autoload": {
"psr-4": {
"MyName\\MyFirstPackage\\": "src/"
}
},
"minimum-stability": "stable",
"prefer-stable": true
}
注意:
-
name格式为vendor/package-name,vendor 通常是你的 GitHub 用户名或团队名。 -
autoload.psr-4配置确保 Composer 能正确加载你的类。
推送到 GitHub(或其他 Git 平台)
Packagist 会从你的 Git 仓库拉取代码,所以需要先把项目托管出去。
GForge是一个基于Web的协同开发平台。它提供一组帮助你的团队进行协同开发的工具,如论坛,邮件列表等。用于创建和控制访问源代码管理库(如CVS,Subversion)的工具。GForge将自动创建一个源代码库并依据项目的角色设置进行访问控制。其它工具还包括:管理文件发布,文档管理,新闻公告,缺陷跟踪,任务管理等。
- 初始化 Git:
git init - 添加并提交文件:
git add . && git commit -m "Initial commit" - 创建 GitHub 仓库(比如叫
my-first-package) - 关联远程并推送:
git remote add origin https://github.com/your-vendor/my-first-package.git git branch -M main git push -u origin main - 打一个版本标签(Packagist 推荐):
git tag v1.0.0 git push origin v1.0.0
提交到 Packagist
现在去 Packagist 让全世界发现你的包。
- 访问 https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19 并注册账号
- 登录后点击右上角“Submit”
- 粘贴你的 GitHub 仓库地址(如
https://github.com/your-vendor/my-first-package) - 点击“Check” → “Submit”
提交后,Packagist 会抓取你的 composer.json 信息并展示包页面。别人就可以使用:
composer require your-vendor/my-first-package
每次你推送新标签(如 v1.1.0),Packagist 通常会自动更新(需启用 GitHub Webhook)。你也可以手动刷新页面上的“Update”按钮。
基本上就这些。不复杂但容易忽略细节,比如命名空间、PSR-4 路径、Git 标签。只要这几步走通,你就正式发布了第一个 Composer 包。









