Each file in the manifest contains the following information:
Phar Manifest file entry
Size in bytes
Description
4 bytes
Filename length in bytes
??
Filename (length specified in previous)
4 bytes
Un-compressed file size in bytes
4 bytes
Unix timestamp of file
4 bytes
Compressed file size in bytes
4 bytes
CRC32 checksum of un-compressed file contents
4 bytes
Bit-mapped File-specific flags
4 bytes
Serialized File Meta-data length (0 for none)
??
Serialized File Meta-data, stored in serialize() format
Note that as of API version 1.1.1, empty directories are stored as filenames
with a trailing slash like my/directory/
The File-specific bitmap values recognized are:
Bitmap values recognized
Value
Description
0x000001FF
These bits are reserved for defining specific file permissions
of a file. Permissions are used for fstat()
and can be used to recreate desired permissions upon extraction.
0x00001000
If set, this file is compressed with zlib compression
0x00002000
If set, this file is compressed with bzip compression