Phar::compress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compress — Comprimir el archivo Phar entero usando la compresión Gzip o Bzip2
Descripción
Nota:
Este
método requiere que la opción de php.ini phar.readonly
esté establecida
a 0
para que trabaje con objetos Phar.
De otra manera, se lanzará una excepción de tipo PharException.
Para archivos phar basados en tar y en phar, este método comprime el archivo entero usando
la compresión gzip o bzip2. El fichero resultante puede ser procesado con el
comando gunzip/bunzip, o se puede acceder a él directa y transparentemente con la extensión
Phar.
Para archivos phar basados en Zip, este método falla con el lanzamiento de una excepción.
La extensión zlib debe estar habilitada para poder comprimir
con la compresión gzip, y la extensión bzip2 debe estar
habilitada para poder comprimir con la compresión bzip2.
Al igual que con toda la funcionalidad que modifica el contenido de un Phar, la
variable INI phar.readonly debe estar desactivada
para poder realizar esto.
Además, este método renombra automáticamente el archivo, añadiéndole .gz
,
.bz2
o eliminado la extensión si se pasa Phar::NONE
para
eliminar la compresión. De forma alternativa, se puede expecificar una extensión de fichero con el segundo
parámetro.
Parámetros
compression
-
La compresión debe ser Phar::GZ
o
Phar::BZ2
para añadir compresión, o Phar::NONE
para eliminarla.
extension
-
Por omisión, la extensión es .phar.gz
o .phar.bz2
para comprimir archivos phar, y
.phar.tar.gz
o .phar.tar.bz2
para
comprimir archivos tar. Para la descompresión, las extensiones de fichero predeterminadas
son .phar
y .phar.tar
.
Valores devueltos
Devuelve un objeto de la clase Phar.
Ejemplos
Ejemplo #1 Un ejemplo de Phar::compress()
<?php
$p = new Phar('/ruta/a/mi.phar', 0, 'mi.phar');
$p['mifichero1.txt'] = 'hola';
$p['mifichero12.txt'] = 'hola';
$p1 = $p->compress(Phar::GZ); // copia a /ruta/a/mi.phar.gz
$p2 = $p->compress(Phar::BZ2); // copia a /ruta/a/mi.phar.bz2
$p3 = $p2->compress(Phar::NONE); // excepción: /ruta/a/mi.phar ya existe
?>