(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::convertToData — Convertir un archivo phar en un fichero tar o zip no ejecutable
$format
= 9021976, int $compression
= 9021976, string $extension
= ?): PharDataEste método se usa para convertir un archivo phar ejecutable en un fichero tar o zip. Para hacer del tar o zip un fichero no ejecutable, se eliminan los ficheros del phar de rutina de interoperabilidad y de alias del recién creado nuevo archivo.
Si no se especifica ningún cambio, este método lanza una excepción de tipo BadMethodCallException si el archivo está en el formato de fichero phar. Para archivos en el formato tar o zip, este método convierte el archivo en un archivo no ejecutable.
En caso de éxito, el metodo crea un nuevo archivo en disco y devuelve un objeto de la clase PharData. El archivo antiguo no se elimina del disco, y debería hacerse manualmente después de que el proceso haya finalizado.
format
Este parámetro debería ser Phar::TAR
o Phar::ZIP
. Si se establece a null
, se conservará el
formato de fichero existente.
compression
Este parámetro debería ser Phar::NONE
para no comprimir el 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 fichero predeterminada de un
archivo convertido. Observe que .phar
no puede ser usado
en ningún lugar del nombre de fichero de un archivo tar o zip no ejecutable.
Si se convierte a un archivo basado en tar, las
extensiones predeterminadas son .tar
, .tar.gz
,
y .tar.bz2
dependiendo de la compresión especificada.
Para archivos basados en zip, la
extensión predetermianda es .zip
.
El método devuelve un objeto PharData en caso de éxito, y lanza una excepción en caso de error.
Este método lanza una excepción de tipo BadMethodCallException cuando no se puede comprimir, se ha especificado un método de compresión desconocido, el archivo solicitado está almacenado en buffer con Phar::startBuffering() y no se ha cerrado con Phar::stopBuffering(), y una excepción de tipo PharException si se encontró algún problema durante el proceso de la creación de phar.
Ejemplo #1 Un ejemplo de Phar::convertToData()
Utilizar Phar::convertToData():
<?php
try {
$tarphar = new Phar('miphar.phar.tar');
// observe que miphar.phar.tar *no* está desvinculado.
// convertirlo a un formato de fichero tar no ejecutable,
// se crea miphar.tar
$tar = $tarphar->convertToData();
// convertirlo a un formato zip no ejecutable, se crea miphar.zip
$zip = $tarphar->convertToData(Phar::ZIP);
// crear miphar.tbz
$tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
// crear miphar.phar.tgz
$phar = $tarphar->convertToData(Phar::PHAR); // lanza una excepción
} catch (Exception $e) {
// manejar el error aquí
}
?>