Что хорошего и плохого в трёх поддерживаемых форматах файла в модуле phar? В этой таблице предпринята попытка решить этот вопрос.
Функционал | Phar | Tar | Zip |
---|---|---|---|
Стандартный формат файла | Нет | Да | Да |
Возможно выполнение без модуля Phar [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.