PharData::convertToData

(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)

PharData::convertToDataКонвертация phar-архива в незапускаемый tar/zip-архив

Описание

public PharData::convertToData ( int $format = ? , int $compression = ? , string $extension = ? ) : 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, либо выбрасывает исключение.

Ошибки

Метод выбрасывает исключениеBadMethodCallException когда не может произвести сжатие, когда задан неизвестный метод сжатия, для архива включена буферизация с помощью Phar::startBuffering(), и не отклбчена при помощи Phar::stopBuffering(). Исключение PharException выбрасывается при любых проблемах создания phar-архива.

Примеры

Пример #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::TARPhar::BZ2'.tbz');
    
// создаем myphar.phar.tgz
    
$phar $tarphar->convertToData(Phar::PHAR); // выбрасывает исключение
} catch (Exception $e) {
    
// обработка ошибок
}
?>

Смотрите также