Phar::convertToData

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

Phar::convertToDataКонвертирует phar-архив в неисполняемый tar- или zip-файл

Описание

public Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] ) : PharData

Этот метод используется для конвертирования phar-архив в tar- или zip-файл. Чтобы создать сделать tar или zip неисполняемым, из создаваемого в результате конвертации архива удаляются загрушка и псевдоним phar-архива.

Если не были указаны никакие изменения, то данный метод выбросит исключение BadMethodCallException, если форматом файла архива является phar. В случае использования с архивами в формате tar или zip, данный метод конвертирует архив в неисполняемый архив.

В случае успеха данный метод создает на диске новый архив и возвращает объект PharData. Старый архив не удаляется с диска, это должно быть сделано вручную после завершения процесса.

Список параметров

format

Значением этого параметра должна быть одна из констант: Phar::TAR или Phar::ZIP. Если значение установлено в NULL, то существующий формат файла будет сохранен.

compression

Значением этого параметра должна быть одна из констант: Phar::NONE для отсутствия сжатия всего архива, Phar::GZ для сжатия, основанного на zlib, или Phar::BZ2 для bzip-сжатия.

extension

Этот параметр используется для переопределения расширение файла по умолчанию для сконвертированного архива. Обратите внимание, что .phar не может быть использовано где-либо в имени файла неисполняемого tar- или zip-архива.

В случае конвертации phar-архива, основанного на tar, расширениями по умолчанию являются: .tar, .tar.gz и .tar.bz2, в зависимости от указанного сжатия. Для архивов, основанных на zip, расширением по умолчанию является .zip.

Возвращаемые значения

Данный метод возвращает объект PharData в случае успеха и выбрасывает исключение в случае неудачи.

Ошибки

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

Примеры

Пример #1 Пример использования Phar::convertToData()

Использование Phar::convertToData():

<?php
try {
    
$tarphar = new Phar('myphar.phar.tar');
    
// обратите внимание, что myphar.phar.tar *не* будет удален
    // конверировать архив в неисполняемый tar-формат
    // будет создан myphar.tar
    
$tar $tarphar->convertToData();
    
//  конверировать архив в неисполняемый zip-формат файла, будет создан myphar.zip
    
$zip $tarphar->convertToData(Phar::ZIP);
    
// будет создан myphar.tbz
    
$tgz $tarphar->convertToData(Phar::TARPhar::BZ2'.tbz');
    
// будет создан myphar.phar.tgz
    
$phar $tarphar->convertToData(Phar::PHAR); // будет выброшено исключение
} catch (Exception $e) {
    
// обработка ошибок
}
?>

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