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

posted @ 2021-08-16 23:00  selfim  阅读(254)  评论(0编辑  收藏  举报