如何创建一个自己的composer包并发布

创建composer包需先组织代码并遵循PSR-4规范,编写含正确命名空间和依赖的composer.json,初始化git并打标签,提交仓库到Packagist,最后通过composer require安装;后续应维护README、测试和语义化版本。

如何创建一个自己的composer包并发布

想让自己的 php 代码被别人通过 Composer 轻松引入?创建并发布一个 Composer 包其实并不复杂。只要按步骤来,几分钟就能搞定。

1. 准备你的包代码

新建一个目录,比如 my-awesome-package,然后在里面组织好你的 PHP 代码。

例如:

/my-awesome-package
├── src/
│ └── Calculator.php
├── composer.json
└── README.md

你的类要遵循 PSR-4 自动加载规范。比如在 src/Calculator.php 中:

<?php

Namespace MyNameAwesomePackage;

class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
}

2. 编写 composer.json 文件

这是最关键的一步。根目录下创建 composer.json,内容如下:

{
“name”: “your-vendor-name/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”: {
“MyNameAwesomePackage”: “src/”
}
},
“minimum-stability”: “stable”,
“prefer-stable”: true
}

注意替换以下字段:

  • name:格式是 vendor/package-name,vendor 可以是你的 github 用户名或公司名
  • namespace:确保和 autoload 里的命名空间一致
  • require:声明依赖的 PHP 版本或其他包

3. 初始化 Git 并打标签

Composer 包通常托管在 GitHub 上,并通过 Git 标签管理版本。

执行命令:

git init
git add .
git commit -m “Initial commit”
git remote add origin https://github.com/yourname/awesome-package.git
git push -u origin main

然后打一个版本标签:

如何创建一个自己的composer包并发布

自由画布

百度文库和百度网盘联合开发的AI创作工具类智能体

如何创建一个自己的composer包并发布73

查看详情 如何创建一个自己的composer包并发布

git tag v1.0.0
git push origin v1.0.0

以后每次更新可以打 v1.1.0、v2.0.0 等标签。

4. 发布到 Packagist

Packagist 是 Composer 的默认包仓库。

访问 https://www.php.cn/link/ec811d0d775adc62776ba80fadd4ed19,登录后点击右上角「Submit」。

填入你 GitHub 仓库的 URL,比如:
https://github.com/yourname/awesome-package

点击「Check」然后「Submit」。

提交后,别人就可以用下面命令安装了:

composer require your-vendor-name/awesome-package

你还可以在 GitHub 设置 Webhook,让 Packagist 在你推送新标签时自动更新。

5. 后续维护建议

  • 保持 README.md 清晰,写明安装和使用方法
  • 为代码写单元测试(推荐用 PHPUnit)
  • 遵守语义化版本规范(SemVer)打标签
  • 考虑添加 LICENSE 文件(如 MIT)

基本上就这些。从写代码到发布,整个过程清晰简单。只要你有 GitHub 和 Packagist 账号,随时都能把自己的工具分享出去。

以上就是如何创建一个自己的composer包并发布的详细内容,更多请关注php中文网其它相关文章!

上一篇
下一篇
text=ZqhQzanResources