(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::convertToExecutable — Конвертирует phar-архив в другой исполняемый формат файла
$format
= null
, ?int $compression
= null
, ?string $extension
= null
): ?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 в успешного выполнения и
null
в случае возникновения ошибки.
Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). Если поддержка записи отключена, то будет брошено исключение UnexpectedValueException. В случае возникновения каких-либо проблем в процессе создания phar выбрасывается исключение PharException.
Версия | Описание |
---|---|
8.0.0 |
format , compression и extension теперь допускают значение null.
|
Пример #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) {
// обработка ошибок
}
?>