PharData::convertToExecutable
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToExecutable — Конвертация tar/zip-архива с данными в запускаемый phar-архив
Описание
public PharData::convertToExecutable(
?int $format
= null
,
?int $compression
= null
,
?string $extension
= null
):
?Phar
Замечание:
Для корректной работы с объектами 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 и null
в случае возникновения ошибки.
Примеры
Пример #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::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// обработка ошибок
}
?>