(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 variable de configuración INI
phar.readonlyesté definida a0para 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.
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
?>