PHP 扩展包开发流程
PHP 扩展包开发流程
现在程序开发,应该很少人再去造轮子吧,直接github一顿搜,哈哈哈哈。
难免有时候会找不到或者不适合,刚好又碰巧这些代码很通用,那么我们不妨自己开发一个轮子 ( 手动狗头 0-0 )
composer安装
拓展包的基础结构
虽然说扩展包并没有什么强制的规定一定要如何组织代码,但是我们推荐根据业界约定俗成的结构:
1 | helper/ |
包构建工具
我这里使用的是overtrue/package-builder提供的一个包结构生成工具
1 | $ composer global require "overtrue/package-builder" --prefer-source |
基本用法
1 | $ package-builder help |
创建项目
1 | $ package-builder build helper |
声明自动加载
tips:一般自动加载有改动的话,最好重新生成一次composer dump-autoload 或者 composer du
1 | { |
完成代码开发,单元测试
最后的composer.json如下:
1 | { |
本地项目测试扩展包
建立测试项目,目录结构如下
1 | dir/ |
进入测试目录之后
1 | # 需要先初始化 composer.json, 一路回车即可 |
小细节:本地composer安装,会创建一个软链接 vendor/lihq1403/helper 到包所在目录 ../helper,这样一来,你可以直接在测试项目的 vendor/lihq1403/helper 下修改文件,包里的文件也会跟着变了
建立测试文件 index.php
1 | <?php |
测试一下:
1 | $ php index.php |
达到预期结果,完美!!!
发布上线
- 将本地代码放到github上面
(不会真有人不会提交代码到github吧)
- 提交到 Packagist
- 启用项目的 Packagist 通知服务
访问你在 Packagist 的个人主页:packagist.org/profile/ ,点击 “Show API Token”,复制 token 备用。
- 给项目代码库启用 Packagist 通知服务
填写对应的内容:
- Payload URL: https://packagist.org/api/github?username=Packagist 的用户名
- Content type 选择为 application/json
- Secret 填写为您刚刚复制的 token
发布第一个版本
版本号约定
1 | 版本格式:主版本号。次版本号。修订号,版本号递增规则如下: |
简单介绍就是,如果你现在的最新版本是 1.0.0,下面的动作的区别是:
- 打补丁,修了一些小 bug,没做 API 修改,那么你应该发布 1.0.1,同理以后也是递增第三位。
- 有一天网友在你的基础上提交了新功能,原来的 API 调用方式也没改变,这时候你应该发布 1.1.0 。
- 一段时间以后,你心血来潮重构了你的扩展包,调用方式也发生了变化,也就是说安装了以前版本的是无法直接升级的,这时候你需要发布 2.0.0 了。
Create new release
填写版本号、这次发版的标题、以及这次版本变化的内容描述,点击提交。
发布成功之后的测试
在新项目里面直接composer require lihq1403/helper,问题不大的话(国内镜像会有延迟),应该能看到安装成功
备注
如果这个开发的包,是一些比较私有的话,建议自己搭建一个私有的 Composer 包仓库
helper源码地址
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lihq - Blog!
评论