Phar::compressFiles

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

Phar::compressFilesCompacta todos os arquivos no arquivo Phar atual

Descrição

public Phar::compressFiles(int $compression): void

Nota:

Este método requer que a configuração phar.readonly do php.ini seja definida como 0 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 inteiro baseado em tar.

Para arquivos phar baseados em zip e phar, este método compacta todos os arquivos no arquivo Phar usando a compactação especificada. As extensões zlib ou bzip2 devem estar habilitadas para aproveitar este recurso. Além disso, se algum arquivo já estiver compactado usando a compactação bzip2/zlib, a respectiva extensão deve ser habilitada para descompactá-lo antes da compactação. Assim como acontece com todas as funcionalidades que modificam o conteúdo de um arquivo Phar, a variável INI phar.readonly deve estar desativada para funcionar.

Parâmetros

compression

Deve ser Phar::GZ, Phar::BZ2 para adicionar compactação ou Phar::NONE para remover compactação.

Valor Retornado

Nenhum valor é retornado.

Erros/Exceções

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.

Exemplos

Exemplo #1 Um exemplo de Phar::compressFiles()

<?php
$p
= new Phar('/caminho/para/meu.phar', 0, 'meu.phar');
$p['meuarquivo.txt'] = 'olá';
$p['meuarquivo2.txt'] = 'olá';
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));
}
?>

O exemplo acima produzirá:

string(14) "meuarquivo.txt"
bool(false)
bool(false)
bool(false)
string(15) "meuarquivo2.txt"
bool(false)
bool(false)
bool(false)
string(14) "meuarquivo.txt"
int(4096)
bool(false)
bool(true)
string(15) "meuarquivo2.txt"
int(4096)
bool(false)
bool(true)

Veja Também