• composer 包开发


    前引

    学习php开发的同学们对composer 我想肯定不陌生吧,java有maven,php有composer 他们都是做的相同的工作。
    PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

    原理

    在这里插入图片描述

    • 第一步:在本地创建 远端 git 仓库,再创建composer 仓库 (composer init)
    • 第二步:在本地完成包的开发
    • 第三步:设置远端git仓库 webhook,指向packgist
    • 第四部:git上传包(上传成功,将会同步webhook至packgist)

    第一步

    省略 git 仓库的创建,仅演示如何创建composer 仓库

    在cmd 中打开根目录 执行

    composer init
    
    • 1

    后续一直根据提示回车。
    结构如下

    {
        "name": "tanyong/laravel-util",
        "autoload": {
            "psr-4": {
                "Tanyong\\LaravelUtil\\": "src/"
            }
        },
        "authors": [
            {
                "name"  : "tanyong",
                "email" : "515063850@qq.com"
            }
        ],
        "license": "MIT",//这个很重要,代表着开源协议,没得协议不行
        "require": {
            "php": ">=8.0"
        },
        "minimum-stability": "dev",
        "prefer-stable": true
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    第二步

    包的开发根据自己的业务需求开发就行了

    第三步

    创建一个packagist的账户

    在这里插入图片描述
    创建成功之后,将composer仓库秘钥(secret)获取到保存下来,后续要用

    在git仓库中设置webhook
    在这里插入图片描述
    在这里设置你的composer包仓库秘钥(上面注册packagist成功后获取到的)。
    再设置Payload URL:https://packagist.org/api/github(composer 包仓库推送地址)
    在这里插入图片描述
    如此,完成git仓库到packagist的映射

    第四步

    • 将开发的composer包git本地
    git add .
    git commit -m "我是composer 包"
    
    • 1
    • 2
    • git 打标签
    git tag
    git tag -a v1.0.1 -m "我是版本1"
    
    • 1
    • 2
    • 上传代码至git仓库
    git push origin v1.0.1
    
    • 1

    至此完成开发
    接下来我们就可以使用了

    composer 包使用

    上传成功的包如图所示
    在这里插入图片描述
    安装示例

    composer require tanyong/laravel-util
    
    • 1

    git vcs 仓库

    有时候因一些翻墙的问题,我们无法将仓库程序同步到packagist平台,怎么办呢?有以下几种办法。

    1. 更换为阿里云composer镜像地址
    2. 设置git 仓库为代码镜像地址

    这里介绍第2种:设置git 仓库为代码镜像地址
    在这里插入图片描述
    我们开始按照之前的流程将代码上传至git仓库,仅有一点不一样(不设置webhook同步)。

    然后在安装的时候我们采用vcs

    {
        "name": "administrator/1",
        "autoload": {
            "psr-4": {
                "Administrator\\1\\": "src/"
            }
        },
    
        "repositories": [
        	//重要,vcs仓库地址
            {
                "type"  : "vcs",
                "url"   : "https://github.com/515063850/laravel_util.git"
            }
        ],
        "require": {
        	//依赖包
            "tanyong/laravel-util"  :   "^1.0.2"
        },
        "authors": [
            {
                "name": "y"
            }
        ]
    }
    
    
    • 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

    参见上图的详情配置。设置要之后,我们再

    composer update
    
    • 1

    完成。

  • 相关阅读:
    Linux学习第16天:Linux设备树下的LED驱动开发:举一反三 专注专心专业
    Spring Boot 3 新特性及快速使用示例
    【uniapp uview】u--textarea组件custom validator check failed for prop “confirmType“
    数据结构之顺序表
    时机成熟,DC 社区成长
    几种经典的卷积神经网络
    终端常用脚本命令
    ZYNQ7020开发(二):zynq linux系统编译
    Mockito(mockito-inline ^3.4.0) mockStatic 模拟无参、有参静态方法调用
    大模型交互-超拟人合成
  • 原文地址:https://blog.csdn.net/u014559227/article/details/126518315