(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
Nota:
Este método requiere que la opción de php.ini
phar.readonly
esté establecida a0
para que trabaje con objetos Phar. De otra manera, se lanzará una excepción de tipo 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.
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
.
Levanta una excepción BadMethodCallException si la variable INI phar.readonly está a on, si la extensión zlib no está disponible, o si la extensión bzip2 no está activada.
Versión | Descripción |
---|---|
8.0.0 |
extension ahora es nullable.
|
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
?>