All Projects → box-project → Box

box-project / Box

Licence: mit
📦🚀 Fast, zero config application bundler with PHARs.

Projects that are alternatives of or similar to Box

Php Console
🖥 PHP CLI application library, provide console argument parse, console controller/command run, color style, user interactive, format information show and more. 功能全面的PHP命令行应用库。提供控制台参数解析, 命令运行,颜色风格输出, 用户信息交互, 特殊格式信息显示
Stars: ✭ 310 (-45.99%)
Mutual labels:  console-application, command-line, phar
Php Scoper
🔨 Prefixes all PHP namespaces in a file/directory to isolate the code bundled in PHARs.
Stars: ✭ 409 (-28.75%)
Mutual labels:  command-line, phar, archive
Laravel Zero
A PHP framework for console artisans
Stars: ✭ 2,821 (+391.46%)
Mutual labels:  console-application, command-line
Pboy
a small .pdf management tool with a command-line UI
Stars: ✭ 662 (+15.33%)
Mutual labels:  console-application, command-line
Commanddotnet
A modern framework for building modern CLI apps
Stars: ✭ 251 (-56.27%)
Mutual labels:  console-application, command-line
Moe
A command line based editor inspired by vi/vim. Written in Nim.
Stars: ✭ 252 (-56.1%)
Mutual labels:  console-application, command-line
Ncbi Genome Download
Scripts to download genomes from the NCBI FTP servers
Stars: ✭ 494 (-13.94%)
Mutual labels:  command-line
2020ncov individual archives
"Every individual matters. Every individual has a role to play." This is a repository that archives the individual stories during the COVID19 pandemic. 备份普通人在疫情期间的记录。(持续翻译 & 更新中)
Stars: ✭ 540 (-5.92%)
Mutual labels:  archive
Rtv
Browse Reddit from your terminal
Stars: ✭ 4,558 (+694.08%)
Mutual labels:  command-line
Cbt
CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
Stars: ✭ 489 (-14.81%)
Mutual labels:  command-line
Broot
A new way to see and navigate directory trees : https://dystroy.org/broot
Stars: ✭ 6,362 (+1008.36%)
Mutual labels:  command-line
Csvtk
A cross-platform, efficient and practical CSV/TSV toolkit in Golang
Stars: ✭ 566 (-1.39%)
Mutual labels:  command-line
Shiori
Simple bookmark manager built with Go
Stars: ✭ 5,315 (+825.96%)
Mutual labels:  command-line
Macports Base
The MacPorts command-line client
Stars: ✭ 502 (-12.54%)
Mutual labels:  command-line
Cli
A command-line interface for Hetzner Cloud
Stars: ✭ 542 (-5.57%)
Mutual labels:  command-line
Wow
😮❗️❗️ Wow❗️ now my Go commandline app is spinning with 🌈 and 🐴
Stars: ✭ 494 (-13.94%)
Mutual labels:  command-line
Shellout
Easily run shell commands from a Swift script or command line tool
Stars: ✭ 566 (-1.39%)
Mutual labels:  command-line
Xonsh
🐚 Python-powered, cross-platform, Unix-gazing shell
Stars: ✭ 5,327 (+828.05%)
Mutual labels:  command-line
Git Labelmaker
🎏 Manage your GitHub labels from the command line!
Stars: ✭ 534 (-6.97%)
Mutual labels:  command-line
Mapscii
🗺 MapSCII is a Braille & ASCII world map renderer for your console - enter => telnet mapscii.me <= on Mac (brew install telnet) and Linux, connect with PuTTY on Windows
Stars: ✭ 5,886 (+925.44%)
Mutual labels:  console-application

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].