电商模板哪个网站好,电脑网站打不开什么原因,仓库出入库管理系统,提供网站建设服务的网站Composer 的工作原理
我们在使用 Composer 之前我们得了解一下它的实现原理#xff0c;它主要由三个部分组成#xff1a;命令行工具、包仓库、代码库#xff1a; Packagist
它是官方仓库#xff0c;也就是我们平常说的 Composer 源#xff0c;它的作用是存储这些包的信息…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命令时会开始一个交互式过程系统将询问你有关项目的一些信息。以下是可能会被询问的问题以及应该如何回答 Package name (vendor-name/package-name) [默认为当前目录名] 这是你的SDK包的名称。默认情况下Composer会使用当前目录名但你可以根据需要更改。 Description [默认为None]
描述你的SDK的简短说明。 Author [默认为None]
输入你的名字和邮箱。 Minimum Stability [默认为stable]
你可以选择包的最低稳定性。大多数情况下保持默认即可。 Package Type [默认为library]
通常是library如果你的项目是一个应用程序则可能选择project。 License [默认为MIT]
选择你打算使用的许可证类型。 Would you like to define your dependencies (require) interactively? [yes]
是否要交互式地定义依赖项。选择“yes”会引导你添加依赖项。 Search for a package:
在这里你可以搜索并选择你想要添加的依赖项。例如你可以搜索guzzlehttp/guzzle以添加 Guzzle HTTP 客户端。 Would you like to define your dev dependencies (require-dev) interactively? [yes]
是否要交互式地定义开发环境下的依赖项。选择“yes”会让你添加开发环境下的依赖项例如测试框架或代码检查工具。 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