Из какого языка программирования взяли идею формата PHAR?

«Из какого языка программирования взяли идею формата PHAR?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Формат 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-сообщества.