composer包开发
准备
Composer 是 PHP 依赖管理的工具,类似于前端nodejs的npm包,Python里的pip包管理工具以及Java里的maven工具,在项目中我们会经常用到一些比较知名的扩展包,比如HTTP client使用:guzzlehttp/guzzle,记录日志使用的monolog/monolog,以及JWT扩展包firebase/php-jwt等等。当我们自己想开发一个composer包时,该怎么做呢?
实践
新建git仓库
新建git仓库,可以是github或者gitee,将项目克隆到本地,创建Composer 配置文件 composer.json,可以使用命令 compser init 创建也可以手动创建,其中composer.json有哪些参数,如何编写可以参考:https://docs.phpcomposer.com/04-schema.html#composer.json,
本文以编写一个MySQL导出数据字典功能为例,最终文件内容大体如下:
{
"name": "selfim/data_dictionary",
"description": "PHP导出MySQL数据库数据字典 可以导出为Word文档和Excel表格以及Markdown、HTML格式",
"type": "library",
"require": {
"php": ">=7.0"
},
"license": "MIT",
"autoload": {
"psr-4": {
"DictionaryExport\\": "src/"
}
},
"authors": [
{
"name": "leo",
"email": "leo2768@163.com"
}
],
"minimum-stability": "dev"
}
提交代码
代码编写完成且测试没问题后提交代码到仓库,项目目录结构如下:
.git/
.gitignore
composer.json
LICENSE
README.md
src/
DataDict.php
发布包到Packagist
登录Packagist后,在Submit处检测仓库的代码,系统会根据仓库中 composer.json 文件自动设置包的相关信息。没有问题的话就上传到
Packagist官网了
使用composer
composer require selfim/data_dictionary
详细的使用见README.md
注
如果项目没有打tag 的要指定dev composer require selfim/data_dictionary @dev