Giter Site home page Giter Site logo

ubox26 / box Goto Github PK

View Code? Open in Web Editor NEW

This project forked from box-project/box

0.0 0.0 0.0 7.95 MB

๐Ÿ“ฆ๐Ÿš€ Fast, zero config application bundler with PHARs.

Home Page: https://box-project.github.io/box

License: MIT License

Shell 0.10% PHP 98.29% Makefile 1.56% Smarty 0.04% Batchfile 0.01% Dockerfile 0.02%

box's Introduction

Package version Scrutinizer Code Quality Slack License

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)

For the full documentation see https://box-project.github.io/box.

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. FAQ
  10. Contributing
  11. Upgrade guide
  12. Backward Compatibility Promise (BCP)
  13. 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][configuration]. 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's People

Contributors

theofidry avatar kherge avatar villfa avatar jrfnl avatar stof avatar sanmai avatar cordoval avatar github-actions[bot] avatar johnstevenson avatar smatyas avatar owenvoke avatar empi89 avatar keradus avatar dependabot[bot] avatar pborreli avatar cristianoc72 avatar llaville avatar mbrodala avatar rogamoore avatar sasezaki avatar hussainweb avatar flip111 avatar smoench avatar pierredup avatar dvdty avatar mhor avatar hason avatar ocramius avatar maks-rafalko avatar lookyman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.