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.hqwc.cn/news/502637.html

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

相关文章

【C语言】常见的动态内存管理错误

前言 上一篇介绍了C语言中 动态内存管理函数,本片讲解的是 在我们使用动态内存管理时 常见的错误,一起来看看吧~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 1.对NULL指针的解引⽤操作 错…

浅谈 Linux 孤儿进程和僵尸进程

文章目录 前言孤儿进程僵尸进程 前言 本文介绍 Linux 中的 孤儿进程 和 僵尸进程。 孤儿进程 在 Linux 中,就是父进程已经结束了,但是子进程还在运行,这个子进程就被称作 孤儿进程。 需要注意两点: 孤儿进程最终会进入孤儿院…

Hgame题解(第二星期)

Hgame题解(第二星期) Web Select More Courses 打开靶机发现是一个登陆页面,根据题目提示下载弱密码字典,通过BP爆破获得用户密码为qwert123 登陆后进入下一个页面,由于学分已满无法选课,所以需要先进行…

40多岁失业的中年人,生活出路在哪里?

如果您是40岁失业的中年人,以下是一些可能有用的建议: 1. 寻找新的就业机会。尽管失业可能很挫败,但是现在可能是一个新开始的时机。您可以更新您的简历和求职信,联系前雇主或同行业的公司,或考虑重新培训获取相关技能…

【MySQL】数据查询——DQL基本数据库查询

目录 查询语法1. 查询表中所有的数据行和列,采用“*”符号2. 查询表中指定列的数据。3. 在查询中使用别名,使用“AS”关键字。4. 在查询中使用常量列:如果需要将一些常量的默认信息添加到输出结果中,以方便统计或计算。可以使用常…

备战蓝桥杯Day21 - 堆排序的内置模块+topk问题

一、内置模块 在python中,堆排序已经设置好了内置模块,不想自己写的话可以使用内置模块,真的很方便,但是堆排序算法的底层逻辑最好还是要了解并掌握一下的。 使用heapq模块的heapify()函数将列表转换为堆,然后使用he…

Highest Price in Supply Chain (25)

1、题目: A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier to customer. Starting …

Spring MVC 和 Spring Cloud Gateway不兼容性问题

当启动SpringCloudGateway网关服务的时候,没注意好依赖问题,出现了这个问题: Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway. 解决办法就是:删除SpringMVC的依赖,即下列依赖。 &…

蓝桥杯练习系统(算法训练)ALGO-996 车的放置

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 在一个n*n的棋盘中,每个格子中至多放置一个车,且要保证任何两个车都不能相互攻击,有多少…

深入探究Python多进程编程:Multiprocessing模块基础与实战【第98篇—Multiprocessing模块】

深入探究Python多进程编程:Multiprocessing模块基础与实战 在Python编程中,多进程处理是一项关键的技术,特别是在需要处理大规模数据或执行耗时任务时。为了充分利用多核处理器的优势,Python提供了multiprocessing模块&#xff0…

MYSQL02高级_目录结构、默认数据库、表文件、系统独立表空间

文章目录 ①. MySQL目录结构②. 查看默认数据库③. MYSQL5.7和8表文件③. 系统、独立表空间 ①. MySQL目录结构 ①. 如何查看关联mysql目录 [rootmysql8 ~]# find / -name mysql /var/lib/mysql /var/lib/mysql/mysql /etc/selinux/targeted/tmp/modules/100/mysql /etc/seli…

2024年新提出的算法|LEA爱情进化算法(Love Evolution Algorithm)

Love Evolution Algorithm: a stimulus–value–role theory-inspired evolutionary algorithm for global optimization 爱情进化算法Love Evolution Algorithm,LEA,于2024年2月发表在中科院3区SCI期刊 The Journal of Supercomputing。 1、简介 本文提…