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