信息发布→ 登录 注册 退出

如何创建一个自己的Composer包并发布到Packagist?(完整步骤)

发布时间:2026-01-06

点击量:
创建并发布 Composer 包到 Packagist 的核心步骤是:写好包代码、配置 composer.json、关联 GitHub 仓库、提交到 Packagist;需确保 PSR-4 自动加载正确、语义化版本标签(如 v1.0.0)已打标并推送,且 vendor 名与 Packagist 账号一致。

创建并发布自己的 Composer 包到 Packagist,核心是三步:写好包代码 + 配置 composer.json + 关联 GitHub 仓库 + 提交到 Packagist。只要结构规范、自动加载正确、版本打标清晰,整个过程不到 10 分钟。

准备一个符合规范的 PHP 包目录结构

你的包不需要复杂框架,一个干净的命名空间 + 可自动加载的类即可。推荐标准结构:

  • 根目录下放 src/(放所有 PHP 类),tests/(可选),composer.json
  • 类文件按 PSR-4 命名,例如 src/YourName/PackageName/Helper.php 对应命名空间 YourName\PackageName
  • 确保 composer.json"autoload" 正确声明 PSR-4 映射,比如:
    "autoload": { "psr-4": { "YourName\\PackageName\\": "src/" } }

编写最小可用的 composer.json

这是 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" }
}

推送到 GitHub 并打第一个语义化版本标签

Packagist 不抓取分支,只认 Git 标签(tag)。所以:

  • 把代码推到 GitHub 公共仓库(如 https://github.com/yourname/simple-log
  • 本地执行:
    git tag -a v1.0.0 -m "First stable release"
    git push origin v1.0.0
  • 标签必须是合法语义化版本(v1.0.0v2.1.3),不能是 1.0master

提交到 Packagist 并启用自动更新

登录 packagist.org,点击右上角 “Submit”:

  • 粘贴你的 GitHub 仓库 URL(如 https://github.com/yourname/simple-log
  • 点击 “Check”,Packagist 会拉取 composer.json 并校验格式
  • 校验通过后点 “Submit”,包立即上线,URL 类似 https://www./link/5d2e892c81e5fafc51ab0973879563a0packages/yourname/simple-log
  • 进入包页面 → “Manage” → “GitHub Service Hook”,勾选 “Enable auto update”,这样每次你 push 新 tag,Packagist 会自动同步

完成后,别人就能直接 composer require yourname/simple-log 安装了。基本上就这些 —— 不复杂但容易忽略 tag 和 autoload 配置。

标签:# 对象  # 推到  # 句话  # 可选  # 不需要  # 就能  # 第一个  # 这是  # 自己的  # 写好  # 自动加载  # https  # php  # 并发  # auto  # require  # 命名空间  # for  # github  # composer  # json  # git  # js  # laravel  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!