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

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

php 复制代码
composer init

这是生成的composer.json文件

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

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

php 复制代码
composer require guzzlehttp/guzzle:^6.0
php 复制代码
{
    "name": "test/sdk", #包的名称
    "description": "这是测试sdk", #SDK的详情介绍
    "type": "library", #包的类型
    "authors": [   #作者消息
        {
            "name": "xxxxxx",
            "email": "[email protected]"
        }
    ],
    "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 复制代码
<?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 复制代码
<?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 执行更新即可

php 复制代码
{
    "require": {
        "test/sdk": "1.0.*"
    },
     #  引入仓库composer 包
    "repositories": [
        # 包的列表
        {
            #包的类型 因为是git 仓库所以是 git
            "type": "git",
            # git shh 仓库地址  
            "url": "[email protected]:xxxxx/xxx/test_sdk.git"
        }
    ]
}

  

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

现在包成功引入

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

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

相关推荐
YUJIANYUE9 小时前
发立得信息发布系统房屋信息版(php+mysql)V1.0版
mysql·php
wo32586614511 小时前
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
开发语言·网络·php
luopeng20766343612 小时前
虚拟局域网中配置某台服务器作为网关的方案
运维·服务器·php
CRMEB定制开发17 小时前
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
阿里云·php·腾讯云·商城系统·微信商城
zorro_z1 天前
启程:为何选择PHP?
php
小柯博客1 天前
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(十二)
c语言·stm32·单片机·嵌入式硬件·php·嵌入式
冰橙子id2 天前
centos7编译安装LNMP架构
mysql·nginx·架构·centos·php
永日456702 天前
学习日记-day24-6.8
开发语言·学习·php
Clang's Blog2 天前
一键搭建 WordPress + MySQL + phpMyAdmin 环境(支持 PHP 版本选择 & 自定义配置)
数据库·mysql·php·wordpr
flyair_China2 天前
【云架构】
开发语言·php