Phar::compressFiles
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compressFiles — Comprime todos los ficheros del archivo Phar actual
Descripción
public Phar::compressFiles(
int $compression
):
void
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 los archivos phar basados en tar, este método lanza una excepción
BadMethodCallException ya que la compresión de ficheros individuales dentro
de un archivo tar no es soportada por el formato de archivo. Utilice
Phar::compress() para comprimir un archivo phar basado en tar en su totalidad.
Para las extensiones phar basadas en Zip, este método comprime todos los ficheros del archivo
Phar utilizando la compresión especificada.
Las extensiones zlib o bzip2
deben estar activadas para aprovechar esta funcionalidad. Asimismo, si uno o varios ficheros
ya han sido comprimidos utilizando la compresión bzip2/zlib, la extensión adecuada debe estar
activada para descomprimir los ficheros antes de recomprimirlos.
Como con todas las funcionalidades que modifican el contenido de un phar, la variable INI
phar.readonly debe estar a off para funcionar.
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.
Valores devueltos
No devuelve ningún valor.
Errores/Excepciones
Lanza una excepción BadMethodCallException si
la variable INI phar.readonly está a on,
si la extensión zlib
no está disponible, o si uno o varios ficheros han sido comprimidos con el algoritmo bzip2
y la extensión bzip2 no está activada.
Ejemplos
Ejemplo #1 Un ejemplo con Phar::compressFiles()
<?php
$p = new Phar('/ruta/al/mon.phar', 0, 'mon.phar');
$p['monfichero.txt'] = 'hola';
$p['monfichero2.txt'] = 'hola';
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>
El resultado del ejemplo sería:
string(10) "monfichero.txt"
bool(false)
bool(false)
bool(false)
string(11) "monfichero2.txt"
bool(false)
bool(false)
bool(false)
string(10) "monfichero.txt"
int(4096)
bool(false)
bool(true)
string(11) "monfichero2.txt"
int(4096)
bool(false)
bool(true)