phar-php-fileformat-php-phar-2

  • What makes a phar a phar and not
    a tar or a zip?
  • Phar File Format

  • Phar File Format
  • Phar File Format

    Phar File Format

    The phar file format is literally laid out as
    stub/manifest/contents/signature, and stores the crucial
    information of what is included in the phar archive in its
    manifest.

    The Phar manifest is a highly optimized format that
    allows per-file specification of file compression, file
    permissions, and even user-defined meta-data such as file user or
    group. All values greater than 1 byte are stored in little-endian
    byte order, with the exception of the API version, which for
    historical reasons is stored as 3 nibbles in big-endian order.

    All unused flags are reserved for future use, and
    must not be used to store custom information. Use the per-file
    meta-data facility to store customized information about particular
    files.

    The basic file format of a Phar archive manifest is
    as follows:

    Global Phar manifest format
    Size in bytes Description
    4 bytes Length of manifest in bytes (1 MB limit)
    4 bytes Number of files in the Phar
    2 bytes API version of the Phar manifest (currently 1.0.0)
    4 bytes Global Phar bitmapped flags
    4 bytes Length of Phar alias
    ?? Phar alias (length based on previous)
    4 bytes Length of Phar metadata (0 for none)
    ?? Serialized Phar Meta-data, stored in serialize() format
    at least 24 * number of entries bytes entries for each file