(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compressFiles — Compacta 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 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.
compression
Deve ser Phar::GZ
,
Phar::BZ2
para adicionar compactação ou Phar::NONE
para remover compactação.
Nenhum valor é retornado.
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::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)