humbug/box

快速、零配置的应用程序捆绑器,支持PHAR文件。

4.6.2 2024-04-23 19:33 UTC

This package is auto-updated.

Last update: 2024-09-16 06:47:30 UTC


README

Box logo

Package version Scrutinizer Code Quality Slack License

Box2 升级?请查看 升级指南

目标

Box应用程序简化了PHAR构建过程。默认情况下,应用程序可以完成许多出色的事情

  • ⚡ 快速应用程序捆绑
  • 🔨 PHAR隔离
  • ⚙️ 默认零配置
  • 🚔 需求检查器
  • 🚨 友好的错误日志体验
  • 🔍 检索有关PHAR扩展或PHAR文件及其内容的详细信息(《box info》或《box diff》)
  • 🔐️ 验证现有PHAR的签名(《box verify》)
  • 📝 使用Git标签和短提交哈希进行版本控制
  • 🐳 获取有关配置的建议和警告(《box validate》)
  • 🚢 Docker支持(《box docker》)

有关完整文档,请参阅 https://box-project.github.io/box

目录

  1. 安装
    1. Phive
    2. Composer
    3. Homebrew
    4. GitHub
    5. Docker
    6. shivammathur/setup-php (GitHub Actions)
  2. 使用
  3. 配置
    1. 基本路径(《base-path》)
    2. 主要(《main》)
    3. 输出(《output》)
    4. 权限(《chmod》)
    5. 检查需求(《check-requirements》)
    6. 包含文件
      1. 强制自动发现(《force-autodiscovery》)
      2. 文件(《files》和《files-bin》)
      3. 目录(《directories》和《directories-bin》)
      4. 查找器(《finder》和《finder-bin》)
      5. 黑名单(《blacklist》)
      6. 排除Composer文件(《exclude-composer-files》)
      7. 排除开发文件(《exclude-dev-files》)
      8. 映射(《map》)
    7. 存根
      1. 存根(《stub》)
      2. 别名(《alias》)
      3. Shebang(《shebang》)
      4. 横幅(《banner》)
      5. 横幅文件(《banner-file》)
    8. 强制时间戳(《timestamp》)
    9. 导出Composer自动加载器(《dump-autoload》)
    10. 压缩器(《compactors》)
      1. 注解(《annotations》)
      2. PHP-Scoper(《php-scoper》)
    11. 压缩算法(《compression》)
    12. 安全性
      1. 签名算法(《algorithm》)
      2. 私钥(《key》)
      3. 私钥密码(《key-pass》)
    13. 元数据(《metadata》)
    14. 可替换占位符
      1. 替换(《replacements》)
      2. 替换符号(《replacement-sigil》)
      3. 日期时间占位符(《datetime》)
      4. 日期时间占位符格式(《datetime-format》)
      5. 漂亮的Git提交占位符(《git》)
      6. Git提交占位符(《git-commit》)
      7. 短Git提交占位符(《git-commit-short》)
      8. Git标签占位符(《git-tag》)
      9. Git版本占位符(《git-version》)
  4. 需求检查器
    1. 配置
      1. PHP版本需求
      2. 扩展配置需求
      3. polyfills
    2. 与自定义存根集成
  5. 优化您的PHAR
    1. 审查您的文件
    2. 压缩您的PHAR
    3. 优化您的代码
  6. PHAR代码隔离
    1. 原因/解释
    2. 隔离PHAR
    3. 调试作用域
  7. Docker 支持
  8. Symfony 支持
    1. 项目文件
    2. 项目目录
    3. 缓存
  9. 可重现构建
    1. 创建可重现的 PHAR
      1. PHP-Scoper
      2. Composer
        1. Composer 根版本
        2. Composer 自动加载后缀
      3. Box
        1. PHAR 别名
        2. 需求检查器
        3. Box 标志
      4. PHAR
    2. 用法
  10. PHAR 签名最佳实践
    1. 内置 PHAR API
      1. 如何签名你的 PHAR
      2. 它是如何工作的
      3. 为什么它是坏的
    2. 如何(正确地)签名你的 PHAR
      1. 创建新的 GPG 密钥
      2. 手动签名
      3. 生成加密密钥
      4. 保护你的加密密钥
      5. 签名你的 PHAR
      6. 验证 PHAR 签名
    3. 在 GitHub Actions 中自动签名
  11. 常见问题解答
    1. 编写 CLI 入口文件的规范方式是什么?
      1. Shebang
      2. PHP_SAPI 检查
      3. 自动加载 Composer
    2. 检测你是否在 PHAR 内部
    3. 使用 Box 作为依赖构建 PHAR
  12. 贡献
  13. 升级指南
  14. 向后兼容承诺(BCP)
  15. 致谢

使用

创建 PHAR 应该像运行 box compile 一样简单(无需配置!)。但是,它将假设一些默认值,您可能想要更改。默认情况下,Box 将按顺序在当前工作目录中查找文件 box.jsonbox.json.dist。例如,基本配置可以更改 PHAR 权限

{
    "chmod": "0700"
}

您可以在配置文档中找到更多高级配置设置。有关可用命令或选项的更多信息,您可以运行

box help

贡献

项目提供了一个 Makefile,其中已注册了最常见的命令,例如修复代码风格或运行测试。

make

向后兼容承诺(BCP)

政策基本上遵循与Symfony 相同。请注意,标记为 @private@internal 的代码不包括在 BCP 中。

命令显示的文本(例如 compileinfo)或错误/异常消息的内容也不受 BCP 的约束。

致谢

项目最初由:Kevin Herrera (@kherge) 创建,现在已转移到 Humbug 的旗下。