Формат файла 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 * количество записей) байт | записи для каждого файла |