Формат файла phar буквально представляет из себя заглушку/манифест/содержимое/подпись и хранит ключевую информацию о том, что включено в phar-архив в его манифесте.
Манифест Phar — это высокооптимизированный формат, который позволяет указывать параметры сжатия файлов, доступа к файлам и даже определяемые пользователем метаданные, такие как владелец или группа файла. Все значения, превышающие 1 байт, хранятся в порядке байтов от младшего к старшему, за исключением версии API, которая по историческим причинам хранится в виде 3 полубайт в порядке от старшего к младшему.
Все неиспользованные флаги зарезервированы для использования в будущем и не должны быть использованы для хранения пользовательской информации. Используйте возможности пофайловых метаданных для хранения индивидуальной информации об отдельных файлах.
Основной формат файла манифеста Phar-архива выглядит следующим образом:
Размер в байтах | Описание |
---|---|
4 байта | Длина манифеста в байтах (предел 1 МБ) |
4 байта | Количество файлов в Phar-архиве |
2 байта | Версия API манифеста Phar (текущая 1.0.0) |
4 байта | Флаги глобальной битовой карты Phar |
4 байта | Длина псевдонима Phar |
?? | Псевдоним Phar (длина основана на предыдущем значении) |
4 байта | Длина метаданных Phar (0 в случае отсутствия) |
?? | Сериализованные метаданные Phar, хранящиеся в формате serialize() |
по меньшей мере (24 * количество записей) байт | записи для каждого файла |