(PHP 5 >= 5.3.0, PHP 7, PECL phar >= 2.0.0)
Phar::convertToExecutable — Конвертирует phar-архив в другой исполняемый формат файла
$format
= 9021976
[, int $compression
= 9021976
[, string $extension
]]] ) : PharЗамечание:
Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.
Этот метод используется для конвертирования phar-архива в другой формат файла. Например, он может быть использован для создания исполняемого phar-архива, основанного на tar, из исполняемого phar-архива, основанного на zip, или из исполняемого phar-архива с форматом файла phar. Кроме того, данный метод может быть использован для сжатия целого архива, основанного на tar или phar.
Если не были указаны никакие изменения, то данный метод выбросит исключение BadMethodCallException.
В случае успеха данный метод создает на диске новый архив и возвращает объект Phar. Старый архив не удаляется с диска, это должно быть сделано вручную после завершения процесса.
format
Значением этого параметра должна быть одна из констант: Phar::PHAR,
Phar::TAR или Phar::ZIP. Если значение установлено
в NULL
, то существующий формат файла будет сохранен.
compression
Значением этого параметра должна быть одна из констант: Phar::NONE для отсутствия сжатия всего архива, Phar::GZ для сжатия, основанного на zlib, или Phar::BZ2 для bzip-сжатия.
extension
Этот параметр используется для переопределения расширение файла по умолчанию для сконвертированного архива. Обратите внимание, что все phar-архивы, основанные на tar или zip, должны содержать .phar в расширении файла чтобы они могли быть обработаны в качестве phar-архива.
В случае конвертации архива, основанного на phar, расширениями по умолчанию являются .phar, .phar.gz и .phar.bz2, в зависимости от указанного сжатия. В случае конвертации phar-архива, основанного на tar, расширениями по умолчанию являются .phar.tar, .phar.tar.gz и .phar.tar.bz2. Для архивов, основанных на zip, расширением по умолчанию является .zip.
Данный метод возвращает объект Phar в успешного выполнения и выбрасывает исключение в случае неудачи.
Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). Если поддержка записи отключена, то будет брошено исключение UnexpectedValueException. В случае возникновения каких-либо проблем в процессе создания phar выбрасывается исключение PharException.
Пример #1 Пример использования Phar::convertToExecutable()
Использование Phar::convertToExecutable():
<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// конвертировать архив в формат phar
// обратите внимание, что myphar.phar.tar *не* будет удален
$phar = $tarphar->convertToExecutable(Phar::PHAR); // будет создан myphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// будет создан myphar.phar.tgz
$compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// обработка ошибок
}
?>