先创建项目目录并初始化composer.JSon,再编写代码和配置自动加载,最后发布到Packagist。具体为:1. 创建目录并运行composer init;2. 设置包名、描述、许可证及PSR-4自动加载(如MyNameAwesomeUtils → src/);3. 在src下编写类文件(如Helper.php中定义sayHello方法);4. 可选本地测试,通过repositories添加路径依赖;5. 推送代码至gitHub等平台,登录Packagist提交仓库URL;6. 使用git tag创建版本(如v1.0.0),Packagist自动同步,用户即可通过composer require安装使用。

要创建一个自己的 Composer 包,你需要按照标准的结构组织代码,并编写必要的配置文件,让其他开发者可以通过 Composer 安装和使用你的包。下面是如何一步步创建并发布一个 Composer 包。
1. 创建项目目录
首先,在本地创建一个新的目录来存放你的包:
mkdir my-awesome-package cd my-awesome-package
2. 初始化 composer.json 文件
运行 composer init 命令来交互式地创建 composer.json 文件:
composer init
你会被提示填写以下信息:
- Package name:格式为
vendor/package-name(例如:myname/awesome-utils) - Description:简短描述你的包功能
- Type:通常为
library - License:推荐使用 MIT 或 GPL 等开源协议
- Minimum Stability:建议设为
dev或stable - PSR-4 Autoload:设置命名空间自动加载(关键步骤)
完成后会生成类似如下的 composer.json:
{ "name": "myname/awesome-utils", "description": "A simple utility package", "type": "library", "license": "MIT", "authors": [ { "name": "Your Name", "email": "you@example.com" } ], "autoload": { "psr-4": { "MyNameAwesomeUtils": "src/" } }, "minimum-stability": "stable", "require": {} }
3. 编写代码
在项目中创建 src/ 目录,并添加 PHP 类文件。例如:
// src/Helper.php namespace MyNameAwesomeUtils; class Helper { public static function sayHello($name) { return "Hello, " . $name . "!"; } }
4. 测试本地包(可选)
你可以在另一个项目中测试这个包是否能正常工作。先在主项目中添加对本地路径的依赖:
"repositories": [ { "type": "path", "url": "../my-awesome-package" } ]
然后安装:
composer require myname/awesome-utils:@dev
安装后就可以在项目中使用:
use MyNameAwesomeUtilsHelper; echo Helper::sayHello('World');
5. 发布到 Packagist
Packagist 是 Composer 的默认包仓库。发布步骤如下:
- 将代码推送到 github/gitlab 等公共 Git 仓库
- 访问 https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19 并登录
- 点击 “Submit” 提交你的仓库 URL
- Packagist 会自动抓取 composer.json 信息
之后其他人就可以通过:
composer require myname/awesome-utils
来安装你的包。
6. 版本管理
使用 Git 标签来管理版本。例如发布 v1.0.0:
git tag v1.0.0 git push origin v1.0.0
Packagist 会自动同步新版本,用户可通过版本约束安装指定版本。
基本上就这些。只要结构清晰、命名规范、支持自动加载,你的 Composer 包就能被广泛使用。不复杂但容易忽略细节。


