(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::convertToData — Конвертирует phar-архив в неисполняемый tar- или zip-файл
$format
= null
, ?int$compression
= null
, ?string$extension
= null
): ?PharDataЭтот метод используется для конвертирования phar-архив в tar- или zip-файл. Чтобы создать сделать tar или zip неисполняемым, из создаваемого в результате конвертации архива удаляются загрузка и псевдоним phar-архива.
Если не были указаны никакие изменения, то данный метод выбросит исключение BadMethodCallException, если форматом файла архива является phar. В случае использования с архивами в формате tar или zip, данный метод конвертирует архив в неисполняемый архив.
В случае успешного выполнения данный метод создаёт на диске новый архив и возвращает объект PharData. Старый архив не удаляется с диска, это должно быть сделано вручную после завершения процесса.
format
Значением этого параметра должна быть одна из констант: Phar::TAR
или Phar::ZIP
. Если значение установлено в null
, то существующий формат файла будет сохранён.
compression
Значением этого параметра должна быть одна из констант: Phar::NONE
для отсутствия сжатия всего архива, Phar::GZ
для сжатия, основанного на zlib, или Phar::BZ2
для bzip-сжатия.
extension
Этот параметр используется для переопределения расширение файла по умолчанию для сконвертированного архива. Обратите внимание, что .phar
не может быть использовано где-либо в имени файла неисполняемого tar- или zip-архива.
В случае конвертации phar-архива, основанного на tar, расширениями по умолчанию являются: .tar
, .tar.gz
и .tar.bz2
, в зависимости от указанного сжатия. Для архивов, основанных на zip, расширением по умолчанию является .zip
.
Данный метод возвращает объект PharData в случае успешного выполнения и null
в случае возникновения ошибки.
Данный метод выбрасывает исключение BadMethodCallException в следующих случаях: при невозможности сжатия; если был передан неизвестный алгоритм сжатия; в запрошенном архиве была включена буферизация с помощью Phar::startBuffering() и не была завершена с помощью Phar::stopBuffering(). В случае возникновения каких-либо проблем в процессе создания phar будет выброшено исключение PharException.
Версия | Описание |
---|---|
8.0.0 | format , compression и extension теперь допускают значение null. |
Пример #1 Пример использования Phar::convertToData()
Использование Phar::convertToData():
<?php
try {
$tarphar = new Phar('myphar.phar.tar');
// обратите внимание, что myphar.phar.tar *не* будет удалён