Что хорошего и плохого в трех поддерживаемых форматах файла в расширении phar? В этой таблице предпринята попытка решить этот вопрос.
Функционал | Phar | Tar | Zip |
---|---|---|---|
Стандартный формат файла | Нет | Да | Да |
Возможно выполнение без модуля Phar [1] | Да | Нет | Нет |
Пофайловое сжатие | Да | Нет | Да |
Сжатие всего архива | Да | Да | Нет |
Проверка подписи всего архива | Да | Да | Да (PHP 5.3.1+) |
Поддержка веб-приложений | Да | Да | Да |
Пофайловые метаданные | Да | Да | Да |
Метаданные всего архива | Да | Да | Да |
Создание/изменение архива [2] | Да | Да | Да |
Полная поддержка всех функций - оберток потока | Да | Да | Да |
Может быть создан/изменен, даже если phar.readonly=1 [3] | Нет | Да | Да |
[1] Без расширения Phar PHP может получить прямой доступ к содержимому Phar-архива только в том случае, если в нём используется заглушка, которая извлекает содержимое phar-архива. Заглушка, созданная при помощи Phar::createDefaultStub(), распаковывает phar-архив и запускает его содержимое из временного каталога в том случае, если не был найден модуль phar.
[2] Для доступа на запись требуется, чтобы был отключён параметр phar.readonly в php.ini или непосредственно в консоли.
[3] Только архивы tar и zip без .phar в имени файла и без исполняемой заглушки .phar/stub.php могут быть созданы, если phar.readonly=1.