Phar::compress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compress — Comprime el archivo Phar completo utilizando la compresión Gzip o Bzip2
Descripción
Nota:
Este
método requiere que la variable de configuración INI phar.readonly
esté definida a 0
para funcionar con los objetos Phar.
De lo contrario, se lanzará una excepción PharException.
En el caso de los archivos phar basados en tar o en phar, este método comprime el archivo completo
utilizando la compresión gzip o bzip2. El archivo resultante puede ser procesado con el comando
gzip/bzip2, o accedido directamente y de forma transparente con la extensión Phar.
En el caso de los archivos phar basados en Zip, este método falla lanzando una excepción.
La extensión zlib debe estar activada para comprimir con gzip, mientras que
la extensión bzip2 debe estar activada para comprimir con bzip2.
Al igual que con todas las funcionalidades que modifican el contenido de un phar, la variable INI
phar.readonly debe estar a off para funcionar.
Además, este método renombra automáticamente el archivo, añadiendo a su nombre .gz
,
.bz2
o eliminando la extensión si Phar::NONE
es pasado para eliminar
la compresión. De lo contrario, una extensión de archivo puede también ser especificada utilizando el segundo
parámetro.
Parámetros
compression
-
La compresión debe ser Phar::GZ
,
Phar::BZ2
para beneficiarse de la compresión, o bien Phar::NONE
para eliminar la compresión.
extension
-
Por omisión, la extensión es .phar.gz
o .phar.bz2
para comprimir los archivos phar, y
.phar.tar.gz
o .phar.tar.bz2
para
comprimir los archivos tar. Para descomprimir, las extensiones por omisión
son .phar
y .phar.tar
.
Valores devueltos
Devuelve un objeto Phar, o null
en caso de error.
Ejemplos
Ejemplo #1 Un ejemplo con Phar::compress()
<?php
$p = new Phar('/ruta/al/mon.phar', 0, 'mon.phar');
$p['monfichier.txt'] = 'hola';
$p['monfichier2.txt'] = 'hola';
$p1 = $p->compress(Phar::GZ); // copia a /ruta/al/mon.phar.gz
$p2 = $p->compress(Phar::BZ2); // copia a /ruta/al/mon.phar.bz2
$p3 = $p2->compress(Phar::NONE); // excepción: /ruta/al/mon.phar ya existe
?>