PharData
PHP Manual

PharData::convertToExecutable

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

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

Описание

Phar PharData::convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

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

Если изменения не указаны, этот метод бросает исключение BadMethodCallException.

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

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

format

Одна из констант: Phar::PHAR, Phar::TAR, или Phar::ZIP. Если задано NULL, то будет сохранен текущий формат.

compression

Одна из констант: Phar::NONE (без сжатия всего архива), Phar::GZ (zlib сжатие), Phar::BZ2 (bzip сжатие).

extension

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

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

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

Этот метод возвращает объект Phar, либо бросает исключение.

Ошибки

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

Примеры

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

Используем PharData::convertToExecutable():

<?php
try {
    
$tarphar = new PharData('myphar.tar');
    
// конвертируем в формат phar
    // обратите внимание, что myphar.tar *не* удаляется
    
$phar $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    
$phar->setStub($phar->createDefaultStub('cli.php''web/index.php'));
    
// создаем myphar.phar.tgz
    
$compressed $tarphar->convertToExecutable(Phar::TARPhar::GZ'.phar.tgz');
} catch (
Exception $e) {
    
// обрабатываем ошибки
}
?>

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


PharData
PHP Manual