(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToData — Конвертация phar-архива в незапускаемый tar/zip-архив
$format
= null
, ?int $compression
= null
, ?string $extension
= null
): ?PharDataЭтот метод используется для преобразования незапускаемого tar/zip-архива в другой незапускаемый формат.
Если не указано никаких изменений, то будет выброшено исключение BadMethodCallException. Этот метод можно использовать для преобразования tar-архива в zip-архив и наоборот. Несмотря на то что, что можно изменить сжатие для tar-архива с помощью этого метода, для этих целей лучше использовать метод PharData::compress().
В случае успешного выполнения будет создан новый архив на диске и возвращён объект PharData. Старый архив удаляться не будет.
format
Одна из констант: Phar::TAR
или Phar::ZIP
. Если задать как null
, то будет использован текущий формат.
compression
Одна из констант: Phar::NONE
(для отключения сжатия всего архива),
Phar::GZ
(для zlib-сжатия),
Phar::BZ2
(для bzip-сжатия).
extension
Этот параметр используется для явного указания расширения нового архива.
Обратите внимание, что для незапускаемых архивов ни в коем случае нельзя
допускать появление подстроки .phar
в любом месте имени файла.
По умолчанию для tar-архивов используются расширения: .tar
,
.tar.gz
и .tar.bz2
. Для zip-архивов: .zip
.
Метод возвращает объект PharData или null
в случае возникновения ошибки.
Метод выбрасывает исключениеBadMethodCallException когда не может произвести сжатие, когда задан неизвестный метод сжатия, для архива включена буферизация с помощью Phar::startBuffering(), и не отключена при помощи Phar::stopBuffering(). Исключение PharException выбрасывается при любых проблемах создания phar-архива.
Версия | Описание |
---|---|
8.0.0 |
format , compression и extension теперь допускают значение null.
|
Пример #1 Пример использования PharData::convertToData()
Использование PharData::convertToData():
<?php
try {
$tarphar = new PharData('myphar.tar');
// обратите внимание, что myphar.tar *не* удаляется
// создаём myphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// создаём myphar.tbz
$tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// создаём myphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // выбрасывает исключение
} catch (Exception $e) {
// обработка ошибок
}
?>