首先创建 composer.json 并设置 PSR- 4 自动加载,接着在 src 目录编写类文件,运行 composer dump-autoload 生成自动加载,通过 test.php 测试功能,最后推送代码到gitHub 并在 Packagist 提交仓库 URL 发布包。

想在 PHP 项目中复用代码,或者分享功能给其他人?Composer 是 PHP 的依赖管理 工具,也支持你创建自己的可发布包。下面一步步教你如何使用 Composer 创建一个自定义 PHP 包。
1. 准备工作:初始化项目
打开终端,新建一个目录作为你的包项目:
mkdir my-awesome-package cd my-awesome-package
composer init
按照提示填写信息:
立即进入 “ 豆包 AI 人工智官网入口”;
立即学习 “ 豆包 AI 人工智能在线问答入口”;
- Package name:格式为
vendor/name,比如yourname/math-utils - Description:简要描述你的包功能
- Author:你的名字和 邮箱
- Type:通常为
library - License:推荐 MIT 或 GPL
- Minimum Stability:设为
dev或stable - PSR-4 Autoloading:设置 命名空间 自动加载,例如:
MyAwesomePackage→src/
完成后会生成一个 composer.json 文件,内容类似:
{"name": "yourname/math-utils", "description": "A simple math utility library", "type": "library", "license": "MIT", "authors": [ { "name": "Your Name", "email": "you@example.com" } ], "autoload": {"psr-4": { "MyAwesomePackage": "src/"} }, "minimum-stability": "stable", "require": {}}
2. 编写代码:组织源码结构
根据 PSR-4 设置,创建 src 目录并添加类文件:
mkdir src touch src/MathHelper.php
编辑 MathHelper.php:
<?php <p>namespace MyAwesomePackage;</p><p>class MathHelper {public static function add($a, $b) {return $a + $b;}</p><pre class='brush:php;toolbar:false;'>public static function multiply($a, $b) {return $a * $b;}
}
保存后,运行以下命令生成自动加载文件:
composer dump-autoload
3. 测试你的包
在项目根目录创建 test.php 来测试功能:
<?php <p>require 'vendor/autoload.php';</p><p>use MyAwesomePackageMathHelper;</p><p>echo MathHelper::add(5, 3); // 输出 8 echo " "; echo MathHelper::multiply(4, 6); // 输出 24</p>
运行测试:
php test.php
4. 发布到 Packagist(让别人能安装)
如果你想让其他人通过 composer require yourname/math-utils 安装你的包,需要发布到 Packagist:
- 将代码推送到 github/gitlab 等公共仓库
- 登录 Packagist,点击“Submit”提交你的仓库 URL
- Packagist 会自动抓取 composer.json 信息
- 每次推送新版本(如打 tag v1.0.0),Packagist 会同步更新
建议使用 Git 标签管理版本:
git tag v1.0.0 git push origin v1.0.0
5. 后续维护与更新
后续开发中,你可以:
- 增加新类或方法
- 修改 composer.json 添加依赖(require)
- 更新版本号并推送新 tag
- Packagist 会自动更新,用户可通过
composer update获取新版
如果你的包依赖其他库,在 composer.json 中添加 require 项即可,例如:
"require": {"guzzlehttp/guzzle": "^7.0"}
基本上就这些。从初始化、编码、测试到发布,整个流程清晰简单。只要遵循 PSR-4 和规范的 composer.json 结构,就能创建出可复用、易分享的 PHP 包。不复杂但容易忽略细节,比如命名空间和自动加载路径匹配。搞定一次,下次就顺了。


