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