(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::decompressFiles — Descompacta todos os arquivos no arquivo Phar atual
Nota:
Este método requer que a configuração
phar.readonly
do php.ini seja definida como0
para funcionar com objetos Phar. Caso contrário, uma exceção PharException será lançada.
Para arquivos PHAR baseados em tar, este método gera uma BadMethodCallException, pois a compactação de arquivos individuais dentro de um arquivo tar não é suportada pelo formato de arquivo. Use Phar::compress() para compactar um arquivo PHAR baseado em tar inteiro.
Para arquivos phar baseados em Zip e phar, este método descompacta todos os arquivos no arquivo Phar. As extensões zlib ou bzip2 devem ser habilitadas para aproveitar este recurso caso algum arquivo seja compactado usando a compactação bzip2/zlib. Assim como acontece com todas as funcionalidades que modificam o conteúdo de um phar, a variável INI phar.readonly deve estar desativada para funcionar.
Esta função não possui parâmetros.
Sempre retorna true
.
Lança BadMethodCallException se a variável INI phar.readonly estiver ativada, a extensão zlib não estiver disponível ou se algum arquivo estiver compactado usando a compactação bzip2 e a extensão bzip2 não estiver habilitada.
Exemplo #1 Um exemplo de Phar::decompressFiles()
<?php
$p = new Phar('/caminho/para/meu.phar', 0, 'meu.phar');
$p['meuarquivo.txt'] = 'olá';
$p['meuarquivo2.txt'] = 'olá';
$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));
}
$p->decompressFiles();
foreach ($p as $file) {
var_dump($file->getFileName());
var_dump($file->isCompressed());
var_dump($file->isCompressed(Phar::BZ2));
var_dump($file->isCompressed(Phar::GZ));
}
?>
O exemplo acima produzirá:
string(14) "meuarquivo.txt" int(4096) bool(false) bool(true) string(15) "meuarquivo2.txt" int(4096) bool(false) bool(true) string(14) "meuarquivo.txt" bool(false) bool(false) bool(false) string(15) "meuarquivo2.txt" bool(false) bool(false) bool(false)