创建并发布 Composer 包到 Packagist 的核心步骤是:写好包代码、配置 composer.json、关联 GitHub 仓库、提交到 Packagist;需确保 PSR-4 自动加载正确、语义化版本标签(如 v1.0.0)已打标并推送,且 vendor 名与 Packagist 账号一致。
创建并发布自己的 Composer 包到 Packagist,核心是三步:写好包代码 + 配置 composer.json + 关联 GitHub 仓库 + 提交到 Packagist。只要结构规范、自动加载正确、版本打标清晰,整个过程不到 10 分钟。
你的包不需要复杂框架,一个干净的命名空间 + 可自动加载的类即可。推荐标准结构:
src/(放所有 PHP 类),tests/(可选),composer.jsonsrc/YourName/PackageName/He
lper.php 对应命名空间 YourName\PackageNamecomposer.json 中 "autoload" 正确声明 PSR-4 映射,比如:"autoload": { "psr-4": { "YourName\\PackageName\\": "src/" } }这是 Packagist 识别和安装你的包的关键文件。必须包含以下字段:
"name":格式为 vendor/name,如 yourname/laravel-helper(vendor 名需与 Packagist 账号或 GitHub 用户名一致)"description":一句话说明用途,Packagist 会展示"type":建议填 library(普通库)或 laravel-package(Laravel 扩展)"autoload":如上所述,PSR-4 映射必须准确"require":列出运行时依赖(如 "php": "^8.0"),没有就留空对象 {}示例精简版:
{
"name": "yourname/simple-log",
"description": "A lightweight log helper for CLI scripts",
"type": "library",
"autoload": { "psr-4": { "YourName\\SimpleLog\\": "src/" } },
"require": { "php": "^8.0" }
}
Packagist 不抓取分支,只认 Git 标签(tag)。所以:
https://github.com/yourname/simple-log)git tag -a v1.0.0 -m "First stable release"git push origin v1.0.0v1.0.0、v2.1.3),不能是 1.0 或 master登录 packagist.org,点击右上角 “Submit”:
https://github.com/yourname/simple-log)composer.json 并校验格式https://www./link/5d2e892c81e5fafc51ab0973879563a0packages/yourname/simple-log完成后,别人就能直接 composer require yourname/simple-log 安装了。基本上就这些 —— 不复杂但容易忽略 tag 和 autoload 配置。