PHP 如何创建一个 composer 包 并在 项目中使用自己的 composer sdk 包

news2024/9/24 11:26:56

第一步创建一个composer SDK项目 创建一个 composer.json文件或使用 命令 (如果不清楚怎么弄 直接跳过即可,一般都会默认配置)

composer init

 这是生成的composer.json文件

将自己要使用的包添加到 require 中,如果没有require则自己添加 (composer文件中必须用双引号不能使用单引号) 必须引入PHP包 版本看项目的使用环境而定  执行composer update 命令更新composer包

也可以使用 composer 命令添加 示例:

composer require guzzlehttp/guzzle:^6.0
{
    "name": "test/sdk", #包的名称
    "description": "这是测试sdk", #SDK的详情介绍
    "type": "library", #包的类型
    "authors": [   #作者消息
        {
            "name": "xxxxxx",
            "email": "xxxxxx@qq.com"
        }
    ],
    "require": {  #需要引入的包
        "php": ">=7.2",  #PHP 大于等于7.2的版本 必须引入PHP包
        "guzzlehttp/guzzle": "~6.0" 
    },
    "autoload": { # 自动加载的配置
        "psr-4": { #代码规范  PSR-4 是 PHP 命名空间和类文件的标准
            # 设置命名空间 名称  src/ 则是当前命名空间 Test\Sdk\ 指定的 文件地址
            "Test\Sdk\": "src/php"
        }
    },
}

第二步在 src文件下面创建一个PHP类 示例 :(命名空间必须是 composer 中配置的 autoload 下的 psr-4 中配置 命名空间)

<?php

namespace Test\Sdk;

class TestSdk
{
    protected  $data = [];

    public function setSdkVersion($version){
        $this->data['sdk_version'] = $version;
        return $this;
    }
    public function setSdkType($type){
        $this->data['sdk_type'] = $type;
        return $this;
    }
    public function getData()
    {
        return $this->data;
    }
}

 

 第三步 在项目根目录中 创建一个php 文件用来测试是否 可以执行 创建一个testSdk.php 文件

 

 

<?php
// 引入composer 包
require __DIR__.'/vendor/autoload.php';
// 引入 test sdk
use Test\Sdk\TestSdk;
// 实例化 test sdk
$test_sdk = new TestSdk();
# 执行sdk 中的方法
$data = $test_sdk->setSdkType('php') # 设置 sdk 类型
    ->setSdkVersion('1.0.0') # 设置 sdk 版本
    ->getData(); # 获取 设置的数据

var_dump($data);

 点击运行脚本

  执行成功 

第四步 将包上传到远程仓库

 将修改的文件 提交到本地仓库 然后 推送分支到 远程仓库

点击推送即可

 

 查看远程仓库 分支已经存在 

 创建合并 并 合并分支

接下来回到 本地 使用 phpstrom 切换本地 分支到默认分支 并 本地默认分支 pull 同步一下远程分支

切换分支

拉取默认分支 内容

接下来给 当前包 打标签  git命令是 git tag 标签名称

phpstrom则是在界面左下角选择 git -》选择日志 -》选择提交记录 右键 选择 add tag 中文则是 新建标记

接下来将 标签 提交到远程仓库

点击推送即可

我们来到远程仓库 

标签已经创建成功

 

 接下来重点来了 我们如何将 我们自己创建的包使用到自己的项目中

打开一个新的项目 我们创建一个composer.json 文件

 在composer 文件中 加入 require 和 repositories 数据 执行composer update 执行更新即可

{
    "require": {
        "test/sdk": "1.0.*"
    },
     #  引入仓库composer 包
    "repositories": [
        # 包的列表
        {
            #包的类型 因为是git 仓库所以是 git
            "type": "git",
            # git shh 仓库地址  
            "url": "git@e.coding.net:xxxxx/xxx/test_sdk.git"
        }
    ]
}

  

(如果没有配置git 环境变量 项目 否则无法使用 composer update 报错)

 现在包成功引入

 

 接下来我们创建一个PHP文件 实例化执行一下 试试看能否执行

能正式跑通,到此我们就大功告成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1014427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉 | CNN】Image Model Blocks的常见算法介绍合集(四)

文章目录 一、Dilated Bottleneck with Projection Block二、NVAE Generative Residual Cell三、NVAE Encoder Residual Cell四、Bottleneck Transformer Block五、Spatial Feature Transform六、Big-Little Module七、Scale Aggregation Block八、Multiscale Dilated Convolut…

Zookeeper 启动失败【Cannot open channel to 3 at election address...】

文章目录 完整报错信息解决方法1.检查文件夹权限2.未监听所有IP3.IP映射名称与 ID 不对应 完整报错信息 Cannot open channel to 3 at election address hadoop121/192.168.10.121:3888 java.net.ConnectException 解决方法 1.检查文件夹权限 检查当前用户是否拥有 Zookeep…

基于SpringBoot的点餐系统

基于SpringBootVue的点餐系统、食堂餐厅点餐系统、前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、用户 管理员…

創能Tronenergy:全球首創,TRON能量算力增值平台

全球知名的TRON能量交易平台Tronenergy再次突破&#xff0c;推出了令人振奮的重磅功能&#xff01;作為全球首創的USDT轉賬0手續費平台&#xff0c;Tronenergy為用戶帶來了一場USDT轉賬革命&#xff0c;立即體驗Tronenergy&#xff0c;享受便捷、經濟的轉賬服務&#xff0c;同時…

Leetcode162. 寻找峰值

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即…

CSRF和SSRF有什么不同?

文章目录 CSRF复现SSRF复现启动环境漏洞复现探测存活IP和端口服务计划任务反弹shell 区别 CSRF复现 打开dvwa&#xff0c;将难度调为low&#xff0c;点击CSRF&#xff0c;打开后发现有一个修改密码的输入框&#xff1a; 在这里修改密码&#xff0c;并用bp抓包&#xff0c;在…

eNSP网络学习

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台&#xff0c;主要对企业网络路由器、交换机进行软件仿真&#xff0c;完美呈现真实设备实景&#xff0c;支持大型网络模拟&#xff0c;让…

指针进阶笔试题

今天分享的是指针的笔试题&#xff0c;相信看完这篇文章对指针又会有深入的了解&#xff0c;让我们来学习吧。 首先分享的是指针和数组的关系&#xff0c;我们都知道数组名是首元素的地址&#xff0c;那就让我们来看一下一维数组和指针的关系吧 //一维数组 int a[] { 1,2,3,4…

go-GC垃圾回收

GC GC是自动化内存管理回收机制 虚拟内存函数栈的数据是会根据函数返回而自动销毁的&#xff0c;而堆上的数据是不会随着函数自动销毁的&#xff0c;堆内数据会随着程序运行而逐渐变大&#xff0c;从而导致内存OOM&#xff0c;Go语言就用了GC来清理堆上的内存数据。 如何区分…

leetcode 2602. 使数组元素全部相等的最少操作次数

给你一个正整数数组 nums 。 同时给你一个长度为 m 的整数数组 queries 。第 i 个查询中&#xff0c;你需要将 nums 中所有元素变成 queries[i] 。你可以执行以下操作 任意 次&#xff1a; 将数组里一个元素 增大 或者 减小 1 。 请你返回一个长度为 m 的数组 answer &#xf…

KCC@大连 | 一场关于开源商业的私享脑暴会

KCC&#xff0c;全称 KAIYUANSHE City Community&#xff08;中文&#xff1a;开源社城市社区&#xff09;是由开源社发起&#xff0c;旨在让开源社区在每个城市落地生根的地域性开源组织。 自2023年2月份发起以来&#xff0c;我们已经在南京、上海、深圳、北京、硅谷、新加坡、…

VMware Fusion 13在M2芯片的Mac上安装 Windows 11

首先需要下载Windows 11镜像 以下给出一种官方方法&#xff0c;当然也可以自己去网上搜索&#xff0c;有很多资源 注册微软账号 使用注册的账号登录 访问&#xff1a;https://www.microsoft.com/en-us/windowsinsider/register 使用登录的账号注册Windows 11 Insider Prog…

关于Python数据分析,这里有一条高效的学习路径

无处不在的数据分析 谷歌的数据分析可以预测一个地区即将爆发的流感&#xff0c;从而进行针对性的预防&#xff1b;淘宝可以根据你浏览和消费的数据进行分析&#xff0c;为你精准推荐商品&#xff1b;口碑极好的网易云音乐&#xff0c;通过其相似性算法&#xff0c;为不同的人…

【海报生成器源码】设计海报生成器网站开源源码(更新)

源码简介: 随着社会经济和商业发展&#xff0c;对产品宣传的需求也加大了。如何快速制作海报也成了很大的需求。这里分享的是一个海报生成器网站的最新源代码。 这个海报编辑器有着实用强大的功能&#xff0c;它的最左侧是组件列表。可以在最左侧选择组件&#xff0c;比如文本…

通讯网关软件003——利用CommGate X2Mbt实现Modbus TCP访问OPC Server

本文介绍利用CommGate X2Mbt实现Modbus访问OPC Server。CommGate X2MBT是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;SCADA系统配置OPC Server&#xff0c;现在上位机需要通过Modbus主站软件来获…

基础版本抖音(字节跳动青训)

抖音基础版&#xff08;字节跳动青训项目&#xff09; 一、项目介绍 本抖音项目是基于grpc通讯协议开发的高性能微服务&#xff0c;不仅使用gin作为业务层框架&#xff0c;gorm框架作为持久层框架&#xff0c;还使用预编译sql防止sql注入&#xff0c;同时该项目结合连接池技术…

JDK9特性——模块化REPL工具

文章目录 前言模块化模块化案例 可交互的REPL工具 前言 谈到Java9大家往往第一个想到的就是Jigsaw项目&#xff08;后改名为Modularity&#xff09;。众所周知&#xff0c;Java已经发展超过20年(95年最初发布)&#xff0c;Java和相关生态在不断丰富的同时也越来越暴露出一些问…

ubuntu(20.04)下截图贴图软件——flameshot(带设快捷键)

ubuntu&#xff08;20.04&#xff09;下截图贴图软件——flameshot 一、 安装二、打开Flameshot三、截图快捷键设置 windows习惯了用Snipaste的截图和贴图功能&#xff0c;在ubuntu中也有替代品Flameshot。 一、 安装 首先我们进入官网&#xff0c;并点击download。 在这里可…

轻松鲨-AI文案写作 人工智能聊天

轻松鲨AI助手使用地址&#xff1a;http://www.qingsongsha.com?utm_sourcenavigation_website 或前往苹果App Store下载“轻松鲨APP” 支持AI连续对话聊天&#xff0c;帮你解答各种疑问... 让AI帮你画思维导图写文案&#xff0c;提升工作效率... 内置多场景专业模板&#xff0…

[SQL Server]在应使用条件的上下文(在 ‘)‘ 附近)中指定了非布尔类型的表达式,查询时间大于某个数值时

这种条件查询条件里面不要有空格&#xff0c;一个也不要有 这种条件查询条件里面不要有空格&#xff0c;一个也不要有 $giftsDb::table(drawgot)->where(disabtime,<,"2030-01-03")->select();