(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToExecutable — Конвертация tar/zip-архива с данными в запускаемый phar-архив
$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
.
Метод выбрасывает исключение BadMethodCallException если не может произвести сжатие, либо если задан неизвестный алгоритм сжатия, для архива включена буферизация с помощью Phar::startBuffering(), а метод Phar::stopBuffering() не вызывался. Выбрасывается исключение UnexpectedValueException, если запись запрещена. И выбрасывается PharException, если возникли проблемы записи на диск.
Версия | Описание |
---|---|
8.0.0 | format , compression и localName теперь допускают значение null. |
Пример #1 Пример использования PharData::convertToExecutable()
Используем PharData::convertToExecutable():
<?php
try {
$tarphar = new PharData('myphar.tar');
// конвертируем в формат phar