PHP Conference Nagoya 2025

Phar::decompress

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)

Phar::decompressDescomprimir un archivo Phar entero

Descripción

public Phar::decompress(string $extension = ?): object

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 y phar, este método descomprime el archivo entero.

Para archivos phar basados en Zip, este método este método falla con el lanzamiento de una excepción. La extensión zlib debe estar habilitada para descomprimir un archivo comprimido con la compresión gzip, y la extensión bzip2 debe estar habilitada para descomprimir un archivo comprimido con la compresión bzip2. 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.

Además, este método cambia automáticamente la extensión del archivo, .phar por omisión para archivos phar, o .phar.tar para archivos phar basados en tar. De forma alternativa, se puede expecificar una extensión de fichero con el segundo parámetro.

Parámetros

extension

Para la descompresión, las extensiones de fichero predeterminadas son .phar y .phar.tar. Use este parámetro para especificar otra extensión de fichero. Observe que todos los archivos phar ejecutables deben contener .phar en su nombre de fichero.

Valores devueltos

Devuelve un objeto de la clase Phar.

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 la extensión bzip2 no está habilitada.

Ejemplos

Ejemplo #1 Un ejemplo de Phar::decompress()

<?php
$p
= new Phar('/ruta/a/mi.phar', 0, 'mi.phar.gz');
$p['mifichero1.txt'] = 'hola';
$p['mifichero12.txt'] = 'hola';
$p3 = $p2->decompress(); // crea /ruta/a/mi.phar
?>

Ver también

add a note

User Contributed Notes 1 note

up
0
shevadas at gmail dot com
8 years ago
decompress() will truncate any part of the filename after the first period, as it assumes it's part of the extension. For example, if your PharData archive is named "views-3.x-3.13.tar.gz", calling decompress on it will create a tar file named "views-3.tar". See https://bugs.php.net/bug.php?id=58852
To Top