Ответ
PHAR (PHP Archive) — это формат упаковки PHP-приложений, библиотек или утилит в единый исполняемый файл, аналогичный JAR в Java. Файл .phar содержит весь необходимый код, ресурсы и метаданные, что упрощает распространение и развертывание.
Основные возможности:
- Исполняемость: PHAR-файл можно запустить как обычный PHP-скрипт:
php myapp.phar. - Сжатие: Поддержка сжатия gzip или bzip2 для уменьшения размера.
- Встроенный загрузчик (stub): Автоматическая загрузка содержимого архива.
Пример создания простого PHAR-архива:
// create-phar.php
$pharFile = 'myapp.phar';
// Убедитесь, что phar.readonly=Off в php.ini
if (file_exists($pharFile)) {
unlink($pharFile);
}
$phar = new Phar($pharFile);
// Добавляем все файлы из директории src/
$phar->buildFromDirectory(__DIR__ . '/src');
// Устанавливаем точку входа (файл, который запустится при выполнении)
$phar->setDefaultStub('index.php');
Где я с этим сталкивался: Многие популярные инструменты экосистемы PHP распространяются именно в виде PHAR-файлов, что делает их установку тривиальной — просто скачать один файл. Например:
- Composer (
composer.phar) - PHPUnit
- Psalm или PHPStan (статические анализаторы)
При разработке внутренних CLI-инструментов для компании мы также использовали PHAR для упаковки, что значительно упрощало их доставку на продакшн-сервера — не нужно было копировать целые директории с зависимостями, только один файл.