Phar::compressFiles
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compressFiles — Compacta 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)