(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToData — Convierte un archivo phar en un archivo tar o zip no ejecutable
$format
= null
, ?int $compression
= null
, ?string $extension
= null
): ?PharDataEste método se utiliza para convertir un archivo tar o zip no ejecutable en otro formato no ejecutable.
Si no se solicita ningún cambio, este método, este método lanza una excepción BadMethodCallException. Este método debe utilizarse para convertir un archivo tar al formato zip y viceversa. Aunque es posible cambiar la compresión de un archivo tar con este método, es preferible utilizar el método PharData::compress() para mantener la coherencia a nivel de lógica.
En caso de éxito, este método crea un nuevo archivo en el disco y devuelve un objeto PharData. El archivo antiguo no se borra del disco, lo cual debe hacerse manualmente una vez finalizado el procesamiento.
format
El formato debe ser Phar::TAR
o
Phar::ZIP
. Si es null
, se conservará el formato de archivo actual.
compression
La compresión debe ser Phar::NONE
para evitar la compresión del archivo
completo, Phar::GZ
para la compresión basada en zlib, y
Phar::BZ2
para la compresión basada en bzip.
extension
Este parámetro se utiliza para sobrescribir la extensión de archivo por defecto del archivo convertido. Tenga en cuenta
que .phar
no puede utilizarse en ninguna parte del nombre de archivo de un archivo tar o zip no ejecutable.
En caso de conversión a un archivo phar basado en tar, las extensiones por defecto son
.tar
, .tar.gz
y .tar.bz2
según la compresión especificada.
Para los archivos basados en zip, la extensión por defecto es .zip
.
Este método devuelve un objeto PharData en caso de éxito,
o null
en caso de fallo.
Este método lanza una excepción BadMethodCallException cuando no es capaz de comprimir, cuando se ha especificado un método de compresión desconocido, cuando el archivo solicitado está en búfer con Phar::startBuffering() y no se ha finalizado con Phar::stopBuffering(), y lanza una excepción PharException si se produce algún problema durante la creación del phar.
Versión | Descripción |
---|---|
8.0.0 |
format , compression , y
extension ahora son nullable.
|
Ejemplo #1 Un ejemplo con PharData::convertToData()
Utilicemos PharData::convertToData():
<?php
try {
$tarphar = new PharData('monphar.tar');
// note que monphar.tar no se *borra*
// al convertirlo al formato tar no ejecutable
// se crea monphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// se crea monphar.tbz
$tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// se crea monphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // lanza una excepción
} catch (Exception $e) {
// los errores se manejan aquí
}
?>