Phar::compressFiles
(PHP >= 5.3.0, PECL phar >= 2.0.0)
Phar::compressFiles — Comprime todos los ficheros del archivo Phar actual
Descripción
$compression
)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 archivos phar basados en tar, este método lanza una excepción de tipo BadMethodCallException, ya que la compresión de ficheros individuales dentro de un archivo tar no está soportada por el formato de fichero. Use Phar::compress() para comprimir un archivo phar entero basado en tar.
Para achivos phar basados en Zip y phar, este método comprime todos los ficheros del archivo Phar usando la compresión especificada. Las extensiones zlib o bzip2 deben estar habilitadas para aprovechar esta característica. Además, si cualquier fichero ya está comprimido con la compresión bzip2/zlib, la extensión respectiva debe estar habilitada para poder descomprimir los ficheros antes de re-comprimirlos. Al igual que con toda la funcionalidad que modifica el contenido de un Phar, la variable INI phar.readonly debe estar desactivada para poder realizar esto.
Parámetros
-
compression -
La compresión debe ser Phar::GZ o Phar::BZ2 para añadir compresión, o Phar::NONE para eliminarla.
Valores devueltos
No devuelve ningún valor.
Errores/Excepciones
Lanza una excepción de tipo BadMethodCallException si la variable INI phar.readonly está activada, la extensión zlib no está disponible, o si cualquier fichero está comprimido con la compresión bzip2 y la extensión bzip2 no está habilitada.
Ejemplos
Ejemplo #1 Un ejemplo de Phar::compressFiles()
<?php
$p = new Phar('/ruta/a/mi.phar', 0, 'mi.phar');
$p['mifichero.txt'] = 'hola';
$p['mifichero2.txt'] = 'hola';
foreach ($p as $fichero) {
var_dump($fichero->getFileName());
var_dump($fichero->isCompressed());
var_dump($fichero->isCompressed(Phar::BZ2));
var_dump($fichero->isCompressed(Phar::GZ));
}
$p->compressFiles(Phar::GZ);
foreach ($p as $fichero) {
var_dump($fichero->getFileName());
var_dump($fichero->isCompressed());
var_dump($fichero->isCompressed(Phar::BZ2));
var_dump($fichero->isCompressed(Phar::GZ));
}
?>
El resultado del ejemplo sería:
string(13) "mifichero.txt" bool(false) bool(false) bool(false) string(14) "mifichero2.txt" bool(false) bool(false) bool(false) string(13) "mifichero.txt" int(4096) bool(false) bool(true) string(14) "mifichero2.txt" int(4096) bool(false) bool(true)
Ver también
- PharFileInfo::getCompressedSize() - Devolver el tamaño real de un fichero (con compresión) dentro de un archivo Phar
- PharFileInfo::isCompressed() - Devolver si la entrada está comprimida
- PharFileInfo::compress() - Comprimir la entrada del Phar actual con la compresión zlib o bzip2
- PharFileInfo::decompress() - Descomprimir la entrada Phar actual dentro del phar
- Phar::canCompress() - Devuelve si la extensión phar soporta la compresión usando zlib o bzip2
- Phar::isCompressed() - Devuelve Phar::GZ oPHAR::BZ2 si el archivo phar entero está comprimido (.tar.gz/tar.bz, etc.)
- Phar::decompressFiles() - Descomprimir todos los ficheros del archivo Phar actual
- Phar::getSupportedCompression() - Devolver un array de los algoritmos de compresión soportados
- Phar::compress() - Comprimir el archivo Phar entero usando la compresión Gzip o Bzip2
- Phar::decompress() - Descomprimir un archivo Phar entero