Phar::compress
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
Phar::compress — Compacta todo o arquivo Phar usando compactação Gzip ou Bzip2
Descrição
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 e PHAR, este método compacta o arquivo inteiro usando
compactação gzip ou bzip2. O arquivo resultante pode ser processado com o comando
gunzip/bunzip ou acessado direta e transparentemente com a
extensão Phar.
Para arquivos phar baseados em Zip, este método falha com uma exceção.
A extensão zlib deve estar habilitada para compactar
com compactação gzip, a extensão bzip2 deve estar
habilitada para compactar com compactação bzip2.
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.
Além disso, este método renomeia automaticamente o arquivo, anexando .gz
,
.bz2
ou removendo a extensão se Phar::NONE
for passado para
remover a compactação. Alternativamente, uma extensão de arquivo pode ser especificada com o segundo
parâmetro.
Parâmetros
compression
-
A compactação deve ser Phar::GZ
,
Phar::BZ2
para adicionar compactação ou Phar::NONE
para remover compactação.
extension
-
Por padrão, a extensão é .phar.gz
ou .phar.bz2
para compactar arquivos phar, e
.phar.tar.gz
ou .phar.tar.bz2
para
compactar arquivos tar. Para descompactação, as extensões de arquivo padrão
são .phar
e .phar.tar
.
Valor Retornado
Retorna um objeto Phar ou null
em caso de falha.
Exemplos
Exemplo #1 Um exemplo de Phar::compress()
<?php
$p = new Phar('/caminho/para/meu.phar', 0, 'meu.phar');
$p['meuarquivo.txt'] = 'olá';
$p['meuarquivo2.txt'] = 'olá';
$p1 = $p->compress(Phar::GZ); // copia para /caminho/para/meu.phar.gz
$p2 = $p->compress(Phar::BZ2); // copia para /caminho/para/meu.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exceção: /caminho/para/meu.phar já existe
?>