使用Composer构建PHP包需要遵循哪些标准规则?
PHP Composer 标准包构建补充指南
你已经了解的GitHub公开仓库准备、composer.json编写是基础要求,除此之外还需要完成以下合规事项:
1. 遵循PSR规范调整目录结构
- 生产代码统一存放在根目录下的
src/文件夹,测试代码单独存放在tests/文件夹,避免生产环境加载冗余的测试资源 - 自动加载遵循PSR-4规范,命名空间与
src/下的目录结构完全对应,需要在composer.json中配置对应的自动加载规则,示例如下:
{ "autoload": { "psr-4": { "你的自定义命名空间前缀\\": "src/" } }, "autoload-dev": { "psr-4": { "你的自定义命名空间前缀\\Tests\\": "tests/" } } }
2. 补充必要的公开说明文档
- 根目录必须添加
README.md,内容需要包含包的核心功能介绍、安装命令(格式为composer require 你的包标识)、基础使用示例、运行环境要求、许可证声明 - 建议添加
CHANGELOG.md,按版本记录迭代内容、修复的问题、新增的特性,方便用户评估版本升级风险 - 有自定义贡献规则的可以补充
CONTRIBUTING.md,说明其他开发者提交代码的规范
3. 完善composer.json的合规配置
- 明确声明包依赖的PHP版本范围、需要的PHP扩展、第三方依赖包的版本范围,不要使用过于宽松的
*版本号,避免出现兼容问题 - 严格区分生产依赖和开发依赖:测试框架、代码检查工具等仅开发场景需要的依赖,必须放在
require-dev字段下,不要写入生产依赖require字段 - 必须声明开源许可证类型,常见的如MIT、Apache-2.0等,填写在composer.json的
license字段中 - 填写清晰的包名称、作者信息、描述信息,方便用户检索识别
4. 保证代码质量与可维护性
- 建议编写单元测试,通常使用PHPUnit作为测试框架,所有测试用例存放在
tests/目录 - 代码遵循PSR-1、PSR-12代码规范,可使用PHP_CodeSniffer做自动规范检查,保证代码可读性
- 不要在包内硬编码敏感信息、本地固定路径,可配置的参数要预留用户自定义入口
5. 版本发布规范
- 所有正式发布的版本需要打Git标签,标签命名遵循语义化版本规则:
v[主版本号].[次版本号].[修订号],例如v1.0.0、v1.1.3,主版本号升级代表存在不兼容的API变更 - 提交包到Packagist时绑定对应的GitHub仓库,开启自动更新,后续推送新的Git标签后会自动同步新版本到Packagist
内容的提问来源于stack exchange,提问作者Amir Hossein Najafi Zadeh
相关产品推荐
相关产品推荐

