Ответ
Формат PHAR (PHP Archive) был вдохновлён форматом JAR (Java Archive) из экосистемы Java. Основная идея — упаковка всего PHP-приложения (скрипты, ресурсы, метаданные) в один исполняемый архивный файл для удобства распространения и развёртывания.
Пример создания простого PHAR-архива:
<?php
// Создаём объект Phar
$phar = new Phar('myapp.phar');
// Добавляем все файлы из директории src/
$phar->buildFromDirectory(__DIR__ . '/src');
// Устанавливаем заглушку (stub) — точку входа
$phar->setStub($phar->createDefaultStub('index.php'));
Ключевые особенности PHAR, унаследованные от концепции JAR:
- Единый файл: Упрощает дистрибуцию библиотек или целых приложений.
- Сжатие: Поддержка сжатия gzip (
Phar::GZ) или bzip2 (Phar::BZ2) для уменьшения размера. - Целостность: Возможность подписи архива для проверки его неизменности.
- Исполняемость: При правильной настройке заглушки файл
.pharможно запускать напрямую командойphp myapp.phar.
Таким образом, PHAR адаптирует проверенную идею самодостаточных архивов из мира Java для нужд PHP-сообщества.