rarst / release-belt
ZIP 文件的 Composer 仓库
Requires
- php: ^7.4|^8.0
- ext-json: *
- akrabat/ip-address-middleware: ^2.1
- danjam/slim-mustache-view: ^1.1
- frontpack/composer-assets-plugin: ~0.10
- league/fractal: ~0.10
- monolog/monolog: ^1.23
- php-di/slim-bridge: ^3.2
- slim/http: ^1.2.0
- slim/psr7: ^1.5
- slim/slim: ^4.10
- symfony/finder: ^5.4.8
- tuupola/slim-basic-auth: ^3.2.1
- twbs/bootstrap: ^4.0
Requires (Dev)
- pds/skeleton: ^1.0
README
Release Belt 是一个 Composer 仓库,用于快速将第三方非 Composer 发布版集成到 Composer 工作流程中。一旦安装了 Release Belt 并上传了带有相应版本号的 zip 文件,Release Belt 会完成其余的工作。
假设以下文件夹结构
releases/wordpress-plugin/rarst/plugin.1.0.zip
它将自动在 /packages.json 中提供以下 Composer 仓库
{
"packages": {
"rarst/plugin": {
"1.0": {
"name": "rarst/plugin",
"version": "1.0",
"dist": {
"url": "http://example.com/rarst/plugin.1.0.zip",
"type": "zip"
},
"type": "wordpress-plugin",
"require": {
"composer/installers": "^1.5"
}
}
}
}
}
安装
1. 安装项目
Release Belt 是一个 project 类型的 Composer 包。建议使用 Git checkout 来更容易地跟踪更新。
提供了一个辅助 Composer 脚本,它尝试获取最新稳定版本并执行 Composer 安装。
安装
git clone https://github.com/Rarst/release-belt
cd release-belt
composer belt-update
更新
composer belt-update
2. 将发布 ZIP 文件放入 releases/ 目录
目录结构应该是:releases/[type]/[vendor name]/[release zip file]。
一个 [type] 可以是
- 一个 原生的 Composer 类型(例如默认的
library); - 任何
composer/installers支持的类型(例如wordpress-plugin); - 或者完全任意。
3. 配置 Web 服务器
应使用 public/ 目录作为 Web 根目录,并使用其中的 index.php 文件来处理请求。
请参考 Slim 文档中的 Web 服务器配置 以及您的 Web 主机资源中的具体设置。
在 Web 浏览器中访问主页和 /packages.json 以检查是否正常工作。
使用
一旦安装了 Release Belt,您可以将仓库添加到项目的 composer.json。
Release Belt 主页将自动为您生成一些 composer.json 模板代码以供使用。
配置
您可以通过创建一个 config/config.php 文件来配置 Release Belt,该文件返回一个要覆盖的选项数组。
有关示例,请参阅 config/configExample.php。
身份验证和权限
Release Belt 实现了 HTTP 身份验证,用于密码保护您的仓库并控制对特定包的访问。您可以通过 users 配置选项进行配置。
包含了一个 bin/encodePassword.php 命令行助手用于散列密码
>php bin/encodePassword.php foo $2y$10$3i9/lVd8UOFIJ6PAMFt8gu3/r5g0qeCJvoSlLCsvMTythye19F77a
如果启用了身份验证,Release Belt 主页将自动为您生成 auth.json 模板代码以供使用。
常见问题解答 (F.A.Q.)
为什么不使用 Packagist/Satis?
Composer 基础设施很棒,但它期望与它友好的供应商。
Release Belt 是为不愿意合作的供应商提供的解决方案,并且从头开始构建一个专用解决方案更快、更容易。
为什么不使用工件?
Composer 工件需要在其中包含 composer.json。这是对于甚至没有那个文件的发布版。
但它是否是 Web 规模的?
不是。
许可
MIT