Composer基础使用 SDK包初始化

Composer 的工作原理

我们在使用 Composer 之前我们得了解一下它的实现原理,它主要由三个部分组成:命令行工具、包仓库、代码库

Packagist

它是官方仓库,也就是我们平常说的 Composer 源,它的作用是存储这些包的信息,版本,代码来源,依赖,作者,主页等信息。官网是 packagist.org/, 你也可以将自己的包发布在上面,这样 Composer 工具就能搜索与安装你的包了,后面我们会具体介绍发布流程。

Repository

代码仓库,Packagist 支持公开与私有仓库,通常是 GitHub 作为代码仓库,当然也可以是 BitBucket 或者 GitLab。

Vendor directory

我们的 Composer 依赖包都统一安装在项目的 vendor 目录下,其中还有 vendor/composer 目录用于存储依赖包的一些基本信息,比如命名空间等。

Composer创建SDK

初始化Composer

确保在项目目录中初始化Composer。如果你还没有Composer,请先安装它。

 

composer init

当你运行composer init命令时,会开始一个交互式过程,系统将询问你有关项目的一些信息。以下是可能会被询问的问题以及应该如何回答:

  1. Package name (vendor-name/package-name) [默认为当前目录名]:

  1. 这是你的SDK包的名称。默认情况下,Composer会使用当前目录名,但你可以根据需要更改。

  1. Description [默认为None]:

描述你的SDK的简短说明。

  1. Author [默认为None]:

输入你的名字和邮箱。

  1. Minimum Stability [默认为stable]:

你可以选择包的最低稳定性。大多数情况下,保持默认即可。

  1. Package Type [默认为library]:

通常是library,如果你的项目是一个应用程序,则可能选择project

  1. License [默认为MIT]:

选择你打算使用的许可证类型。

  1. Would you like to define your dependencies (require) interactively? [yes]:

是否要交互式地定义依赖项。选择“yes”会引导你添加依赖项。

  1. Search for a package:

在这里,你可以搜索并选择你想要添加的依赖项。例如,你可以搜索"guzzlehttp/guzzle"以添加 Guzzle HTTP 客户端。

  1. Would you like to define your dev dependencies (require-dev) interactively? [yes]:

是否要交互式地定义开发环境下的依赖项。选择“yes”会让你添加开发环境下的依赖项,例如测试框架或代码检查工具。

  1. Search for a package (for dev):

类似于第 8 步,在这里你可以搜索并添加开发环境下的依赖项。

完成这些步骤后,Composer 将根据你提供的信息生成一个composer.json文件,其中包含了你项目的基本信息、依赖项等。这个文件会被用来管理你的项目所需的各种依赖项以及包的配置信息。

定义依赖项

composer.json文件中,定义你的SDK的依赖项。这可能包括SDK的名称、版本号和其他信息。

{"name": "your-vendor-name/your-sdk-name","description": "Description of your SDK","require": {"php": "^7.3",// 你的依赖项},"autoload": {"psr-4": {"YourNamespace\\": "src/"}}
}
 

确保将YourNamespace替换为你想要的命名空间。

SDK目录结果

 
├── CHANGELOG.md
├── LICENSE
├── Makefile
├── README.md
├── composer.json
├── composer.lock
├── docs
│   ├── README.md
├── phpunit.xml
├── scripts
│   └── php_lint.sh
├── src
│   └── Support
│       └── helpers.php
└── tests├── AbstractTestCase.php├── Feature├── Unit│   └── ExampleTest.php└── bootstrap.php

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

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

相关文章

参数引入和全局变量引入实现-目标和

LCR 102. 目标和 - 力扣(LeetCode) 分析题意,画出决策树,其他的思路都跟前面讲过的类似: 全局变量引入实现: 全局变量的引入,需要手动处理回溯; class Solution {int ret; //…

从0到1全流程使用 segment-anything

从0到1全流程使用 segment-anything 一、安装 anaconda 一、下载 anaconda 二、以管理员身份运行安装 1、勾选 Just Me 2、统一安装路径(后续 python 等包也安装至此目录) 3、勾选 add to path 然后安装即可。 三、修改 Anaconda 默认路径及默认缓存路径 Anaconda 默认下…

#QT(DEMO)

1.IDE:QTCreator 2.实验:打印"hello wolrd" 3.记录 (1)创建一个新工程: 新建好一个工程存放文件夹(路径不能有中文),然后按下图配置 (2)点击widgets.ui拖入以…

真香定律!我用这种模式重构了第三方登录

分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/ 老猫的设计模式专栏已经偷偷发车了。不甘愿做crud boy?看了好几遍的设计模式还记不住?那就不要刻意记了,跟上老猫的步伐,在一个个有趣的职场故事中领悟设计模…

2023人机交互期末复习

考试题型及分值分布 1、选择题(10题、20分) 2、填空题(10题、20分) 3、判断题(可选、5题、10分) 4、解答题(5~6题、30分) 5、分析计算题(1~2题、20分) 注意&…

PHP+MySQL实现后台管理系统增删改查之够用就好

说明 最近要给博客弄个后台,不想搞得很复杂,有基本的增删改查就够了,到网上找了一圈发现这个不错,很实用,希望可以帮到大家,需要的朋友评论区留下邮箱,我安排发送。 演示效果 项目介绍 本项目…

带使能控制的锂电池充放电解决方案

一、产品概述 TP4594R 是一款集成线性充电管理、同步升压转换、电池电量指示和多种保护功能的单芯片电源管理 SOC,为锂电池的充放电提供完整的单芯片电源解决方案。 TP4594R 内部集成了线性充电管理模块、同步升压放电管理模块、电量检测与 LED 指示模块、保护模块…

关于python函数参数传递

参数传递 在 python 中,类型属于对象,对象有不同类型的区分,变量是没有类型的: 在下面的代码示例重,[1,2,3] 是 List 类型,“qayrup” 是 String 类型,而变量 a 是没有类型,它仅仅…

#WEB前端

1.实验:vscode安装,及HTML常用文本标签 2.IDE:VSCODE 3.记录: (1)网页直接搜索安装vscode (2)打开vscode,在下图分别安装以下插件: Html Css Support …

C++11线程同步之互斥锁

C11线程同步之互斥锁 std::mutex成员函数线程同步 std::lock_guardstd::recursive_mutexstd::timed_mutex 进行多线程编程,如果多个线程需要对同一块内存进行操作,比如:同时读、同时写、同时读写对于后两种情况来说,如果不做任何的…

《互联网的世界》第四讲-拥塞控制与编码

需要澄清的一个误区是,拥塞绝不是发送的数据量太大导致,而是数据在极短的时间段内到达了同一个地方以至于超过了网络处理容量导致,拥塞的成因一定要考虑时间因素。换句话说,拥塞由大突发导致。 只要 pacing,再多的数据…

动态规划(算法竞赛、蓝桥杯)--树形DP树形背包

1、B站视频链接&#xff1a;E18 树形DP 树形背包_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; const int N110; int n,V,p,root; int v[N],w[N]; int h[N],to[N],ne[N],tot; //邻接表 int f[N][N];void add(int a,int b){to[tot]b;ne[tot]h[a];h[a…

数仓项目6.0(一)

尚硅谷大数据项目【电商数仓6.0】企业数据仓库项目_bilibili 数据流转过程 用户➡️业务服务器➡️数据库存储➡️数仓统计分析➡️数据可视化 数据仓库处理流程&#xff1a;数据源➡️加工数据➡️统计筛选数据➡️分析数据 数据库不是为了数据仓库服务的&#xff0c;需要…

B084-SpringCloud-Zuul Config

目录 zuul系统架构和zuul的作用zuul网关实现配置映射路径过滤器 Config概述云端管理本地配置 zuul zuul是分布式和集群后前端统一访问入口 系统架构和zuul的作用 zuul把自己注册进eureka&#xff0c;然后可通过前端传来的服务名发现和访问对应的服务集群 为了预防zuul单点故…

【OJ】求和与计算日期

文章目录 1. 前言2. JZ64 求123...n2.1 题目分析2.2 代码 3. HJ73 计算日期到天数转换3.1 题目分析3.2 代码 4. KY222 打印日期4.1 题目分析4.2 代码 1. 前言 下面两个题目均来自牛客&#xff0c;使用的编程语言是c&#xff0c;分享个人的一些思路和代码。 2. JZ64 求123…n …

毕业生信息招聘平台|基于springboot+ Mysql+Java的毕业生信息招聘平台设计与实现(源码+数据库+文档+PPT)

目录 论文参考 摘 要 数据库设计 系统详细设计 文末获取源码联系 论文参考 摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 毕业生信息招聘平台&#xff0c;主要的模块包括查看管理员&a…

基于Springboot的无人智慧超市管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的无人智慧超市管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系…

【每日刷题】数组-LC56、LC238、随想录1、LC560

1. LC56 合并区间 题目链接 Arrays.sort先让intervals里的子数组按照子数组的第一个数字值从小到大排列。开一个新数组&#xff0c;newInterval&#xff0c;存放合并好的子数组让intervals的当前子数组i的第一个数字与newInterval的当前子数组index的最后一个数字比较大小&am…

Intel/国产化无人叉车机器视觉专用控制器

无人叉车和机器视觉是两个独立的技术领域&#xff0c;但它们可以结合使用以实现更高效的物流自动化。无人叉车是一种自动化运输工具&#xff0c;可以在没有人为干预的情况下完成货物的搬运和运输。机器视觉是一种人工智能技术&#xff0c;可以让计算机识别和理解图像或视频中的…

FPGA时序约束与分析--建立时间与保持时间

文章目录 前言一、定义二、举例说明2.1 建立时间违规2.2 保持时间违规前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的…