• 制作php的composer包


    目录

    1、初始化包
    2、将代码推送到github远程仓库
    3、为写好扩展包打上tag标签标记当前代码版本
    4、将包发布到包管理平台

    初始化包,生成

    Creates a basic composer.json file in current directory

    composer init 
    
    • 1

    composer init 按照引导就可以生成了 , 详细的引导解释如下

    This command will guide you through creating your composer.json config.
     
    # 1. 输入项目命名空间,我是按github账号名/仓库名
    # 注意/ 必须要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
    Package name (/) [root/test_composer]:yourname/projectname
     
    # 2. 项目描述
    Description []:这是一个测试composer init 项目
     
    # 3. 输入作者信息,直接回车可能出现如下提示,有的系统可以直接回车,具体为什么?这里不详细介绍
     Invalid author string.  Must be in the format: John Smith 
    # 3.1. 注意必须要符合 John Smith 
    Author [Alan.Liu <5425902+liuyuanshan11@user.noreply.gitee.com>, n to skip]: liuyuanshan
     
    # 4. 输入最低稳定版本,stable, RC, beta, alpha, dev
    Minimum Stability []:dev
     
    # 5. 输入项目类型
    Package Type (e.g. library, project, metapackage, composer-plugin) []:library
     
    # 6. 输入授权类型,默认回车
    License []:
     
    Define your dependencies.
     
    # 7. 输入依赖信息,默认回车
    Would you like to define your dependencies (require) interactively [yes]?
     
    # 7.1. 如果需要依赖,则输入要安装的依赖
    Search for a package:php
     
    # 7.2. 输入版本号
    Enter the version constraint to require (or leave blank to use the latest version): >=7.0.0
     
    #  如需多个依赖,则重复以上两个步骤(7.1/7.2),没有则默认回车
    Search for a package:
     
    # 8. 是否需要require-dev,
    Would you like to define your dev dependencies (require-dev) interactively [yes]?
     
    {
        "name": "liuyuanshan11/demo",
        "description": "this is test project",
        "type": "library",
        "require-dev": {
            "php": "7.0.0"
        },
        "autoload": {
            "psr-4": {
                "Liuyuanshan11\\Demo\\": "src/"
            }
        },
        "authors": [
            {
                "name": "liuyuanshan"
            }
        ],
        "minimum-stability": "dev",
        "require": {}
    }
    # 9. 是否生成composer.json
    Do you confirm generation [yes]?
     
    # 现在安装依赖项吗
    Would you like to install dependencies now [yes]?
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65

    随后调整composer.json配置文件,内容示例如下:

    {
        "name": "liuyuanshan11/demo",
        "description": "this is test project",
        "homepage":"https://github.com/liuyuanshan11/demo",
        "require": {
            "php":">=7.0",
            "ext-json": "*"
        },
        "type": "library",
        "autoload": {
            "psr-4": {
                "Liuyuanshan11\\Demo\\": "src/"
            }
        },
        "authors": [
            {
                "name": "liuyuanshan",
                "email": "1019213039@qq.com",
                "homepage":"https://github.com/liuyuanshan11/demo"
            }
        ],
        "minimum-stability": "dev"
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    生成vendor目录

    composer update
    
    • 1

    编写测试代码
    src/Test.php

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    后再根目录 创建一下 index.php 引入类

    index();
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    执行自动加载命令,为创建的类文件指定自动加载命名空间

    composer dump-autoload -o
    
    • 1

    将代码推送到github远程仓库

    # 将代码推送到master远程仓库
     git push origin master
    
    • 1
    • 2

    为写好扩展包打上tag标签标记当前代码版本

    为当前版本打上tag标签,在发布包管理平台时会使用到,因为包的拉取是根据版本拉取的,默认拉取最新tag标签的版本包

    # 创建标签
    git tag v1.0.0
    
    # 查看所有标签
    git tag
    
    # 远程推送到github仓库
    git push origin master --tags
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    将包发布到包管理平台

    先到包管理平台进行注册登录,这里我选择了github账号进行授权登录比较方标

    https://packagist.org/
    
    • 1

    点击【Submit】按钮,将github仓库地址放入解析框,最后点击【Check】便可完成包的发布
    在这里插入图片描述
    查看发布的包与迭代中的包版本
    在这里插入图片描述

    下载并使用包示例

    下载包,默认拉取最新tag包

    composer require liuyuanshan11/sd-micro-service-client
    
    • 1

    使用包

    use liuyuanshan11\SdMicroServiceClient\MicroService;
    
    
    $services = [
        'queue' => 'https://queue-service.sumian.com',
        'console' => 'https://console-service.sumian.com',
        'organization' => 'https://organization-service.sumian.com',
        'liu' => 'http://sdapi.test.top'
    ];
    
    $obj = new MicroService('appId', 'appSecret', $services);
    var_dump($obj->get('console')->act('controller', 'action', ["key01" => "value01"]));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    React 详解
    MySQL主键类型使用int、bigint、varchar区别
    PHP+Lunix+GIT 如何快速使用宝塔WebHook快速自动化部署
    Doris学习笔记之备份与恢复
    去除pdf/word的水印艺术字
    C++中将string 类型与int类型的相互转换
    注解和反射详解以及运用
    Jackson 库中的 ObjectMapper
    H3C GRE over ipsec配置
    CTFshow,信息搜集:web9
  • 原文地址:https://blog.csdn.net/weixin_39218464/article/details/128168372