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

第一步创建一个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": "[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

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": "[email protected]:xxxxx/xxx/test_sdk.git"

}

]

}

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

现在包成功引入

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

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


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/fuchto/article/details/132908197

相关推荐
农民也会写代码3 小时前
织梦dedecms上传附件不自动改名的办法
mysql·php·dedecms
wangzhpwang14 小时前
Adminer 连接mssql sqlserver
mysql·sqlserver·php·dba·mssql
—Qeyser19 小时前
Laravle 证件照排版
php·laravel·证件照
PHP代码1 天前
大文件上传,对接阿里oss采用前端分片技术。完成对应需求!
php
农民也会写代码1 天前
织梦dedecms登录后台出现Safe Alert Request Error step 2
php·cms·dedecms·php二开
斯普信专业组2 天前
IP隧道技术中数据包头部的变化分析:必然增加的封装机制
网络·tcp/ip·php
叫我黎大侠2 天前
使用 LibreOffice 实现各种文档格式转换(支持任何开发语言调用 和 Linux + Windows 环境)[全网首发,保姆级教程,建议收藏]
java·大数据·linux·开发语言·python·c#·php
一米阳光zw2 天前
mac将自己网络暴露到公网
网络·macos·php
代码配咖啡2 天前
深度解析:SQLynx 如何筑牢数据库安全防线
开发语言·数据库·php
不惜年少枉少年2 天前
java Sm2SignWithSM3转php
android·java·php