box

?? Fast, zero config application bundler with PHARs.

Github星跟蹤圖

Package version
Travis Build Status
Scrutinizer Code Quality
Slack
License

Fork of the unmaintained box2 project. This project needs your help!

Upgrading from Box2? Checkout the upgrade guide!

Goal

The Box application simplifies the PHAR building process. Out of the box (no pun intended), the application can do many
great things:

  • ⚡ Fast application bundling
  • ? PHAR isolation
  • ⚙️ Zero configuration by default
  • ? Requirements checker
  • ? Friendly error logging experience
  • ? Retrieve information about the PHAR extension or a PHAR file and its contents (box info or box diff)
  • ?️ Verify the signature of an existing PHAR (box verify)
  • ? Use Git tags and short commit hashes for versioning
  • ?️️ Get recommendations and warnings about regarding your configuration (box validate)
  • ? Docker support (box docker)

Table of Contents

  1. Installation
    1. PHAR
    2. Phive
    3. Composer
    4. Homebrew
  2. Usage
  3. Configuration
    1. Base path (base-path)
    2. Main (main)
    3. Output (output)
    4. Permissions (chmod)
    5. Check requirements (check-requirements)
    6. Including files
      1. Force auto-discovery (force-autodiscovery)
      2. Files (files and files-bin)
      3. Directories (directories and directories-bin)
      4. Finder (finder and finder-bin)
      5. Blacklist (blacklist)
      6. Excluding the Composer files (exclude-composer-files)
      7. Excluding dev files (exclude-dev-files)
      8. Map (map)
    7. Stub
      1. Stub (stub)
      2. Alias (alias)
      3. Shebang (shebang)
      4. Banner (banner)
      5. Banner file (banner-file)
    8. Dumping the Composer autoloader (dump-autoload)
    9. Compactors (compactors)
      1. Annotations (annotations)
      2. PHP-Scoper (php-scoper)
    10. Compression algorithm (compression)
    11. Security
      1. Signing algorithm (algorithm)
      2. The private key (key)
      3. The private key password (key-pass)
    12. Metadata (metadata)
    13. Replaceable placeholders
      1. Replacements (replacements)
      2. Replacement sigil (replacement-sigil)
      3. Datetime placeholder (datetime)
      4. Datetime placeholder format (datetime-format)
      5. Pretty git commit placeholder (git)
      6. Git commit placeholder (git-commit)
      7. Short git commit placeholder (git-commit-short)
      8. Git tag placeholder (git-tag)
      9. Git version placeholder (git-version)
  4. Requirements checker
    1. Configuration
      1. PHP version requirements
      2. Extension configuration requirements
      3. Polyfills
    2. Integration with a custom stub
  5. Optimize your PHAR
    1. Review your files
    2. Compress your PHAR
    3. Optimize your code
  6. PHAR code isolation
    1. Why/Explanation
    2. Isolating the PHAR
    3. Debugging the scoping
  7. Docker support
  8. Symfony support
  9. Contributing
  10. Upgrade guide
  11. Backward Compatibility Promise (BCP)
  12. Credits

Usage

Creating a PHAR should be as simple as running box compile (no config required!). It will however assume some
defaults that you might want to change. Box will by default be looking in order for the files box.json and
box.json.dist in the current working directory. A basic configuration could be for example changing the PHAR
permissions:

{
    "chmod": "0700"
}

You can then find more advanced configuration settings in the configuration documentation.
For more information on which command or options is available, you can run:

box help

Contributing

The project provides a Makefile in which the most common commands have been registered such as fixing the coding
style or running the test.

make

Backward Compatibility Promise (BCP)

The policy is for the major part following the same as Symfony's one. Note that the code marked
as @private or @internal are excluded from the BCP.

The text displayed by the commands (e.g. compile or info) or the content of the error/exception messages are also not subject to the BCP.

Credits

Project originally created by: Kevin Herrera (@kherge) which has now been moved under the Humbug umbrella.

主要指標

概覽
名稱與所有者box-project/box
主編程語言PHP
編程語言PHP (語言數: 6)
平台
許可證MIT License
所有者活动
創建於2017-11-04 22:06:27
推送於2025-06-16 07:04:44
最后一次提交
發布數134
最新版本名稱4.6.6 (發布於 )
第一版名稱1.0.0-alpha.1 (發布於 )
用户参与
星數1.2k
關注者數26
派生數105
提交數1.4k
已啟用問題?
問題數349
打開的問題數62
拉請求數1004
打開的拉請求數11
關閉的拉請求數140
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?