首先创建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 包。不复杂但容易忽略细节,比如命名空间和自动加载路径匹配。搞定一次,下次就顺了。


