(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::compressFiles — Comprime todos los ficheros del archivo tar/zip actual
Para los archivos basados en tar, este método genera una excepción BadMethodCallException ya que la compresión individual de los ficheros de un archivo tar no es soportada por este formato de archivo. Utilice PharData::compress() para comprimir un archivo basado en tar completo.
Para los archivos basados en Zip, este método comprime todos los ficheros del archivo utilizando la compresión especificada. Las extensiones zlib o bzip2 deben estar activadas para aprovechar esta funcionalidad. Además, si al menos un fichero ya está comprimido utilizando la compresión bzip2/zlib, la extensión adecuada debe estar activada para descomprimir los ficheros antes de volver a comprimirlos.
compression
La compresión debe ser Phar::GZ
o
Phar::BZ2
para aplicar una compresión, o Phar::NONE
para eliminarla.
No se retorna ningún valor.
Genera una excepción BadMethodCallException si la variable INI phar.readonly está a on, si la extensión zlib no está disponible o si al menos un fichero está comprimido vía bzip2 y la extensión bzip2 no está activada.
Ejemplo #1 Un ejemplo con PharData::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 ejemplo anterior mostrará :
string(14) "monfichero.txt" bool(false) bool(false) bool(false) string(15) "monfichero2.txt" bool(false) bool(false) bool(false) string(14) "monfichero.txt" int(4096) bool(false) bool(true) string(15) "monfichero2.txt" int(4096) bool(false) bool(true)