(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL phar >= 2.0.0)
PharData::convertToExecutable — Converte um arquivo tar/zip não executável em um arquivo phar executável
$format
= null
, ?int $compression
= null
, ?string $extension
= null
): ?PharNota:
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.
Este método é usado para converter um arquivo tar ou zip não executável em um arquivo phar executável. Qualquer um dos três formatos de arquivo executável (phar, tar ou zip) pode ser usado, e a compactação de todo o arquivo também pode ser realizada.
Se nenhuma alteração for especificada, este método lançará uma BadMethodCallException.
Se bem-sucedido, o método cria um novo arquivo no disco e retorna um objeto Phar. O arquivo antigo não é removido do disco e deve ser removido manualmente após a conclusão do processo.
format
Deve ser um dos seguintes: Phar::PHAR
, Phar::TAR
,
ou Phar::ZIP
. Se definido como null
, o formato de arquivo existente
será preservado.
compression
Deve ser um dos seguintes: Phar::NONE
para nenhuma compactação de arquivo inteiro,
Phar::GZ
para compactação baseada em zlib e
Phar::BZ2
para compactação baseada em bzip.
extension
Este parâmetro é usado para substituir a extensão de arquivo padrão para um
arquivo convertido. Observe que todos os arquivos phar baseados em zip e tar devem conter
.phar
em sua extensão para serem processados como um
arquivo phar.
Ao converter para um arquivo baseado em PHAR, as extensões padrão são
.phar
, .phar.gz
ou .phar.bz2
dependendo da compactação especificada. Para arquivos PHAR baseados em tar, as
extensões padrão são .phar.tar
, .phar.tar.gz
e .phar.tar.bz2
. Para arquivos PHAR baseados em ZIP, a
extensão padrão é .phar.zip
.
Este método lança uma BadMethodCallException quando não é possível compactar, ou se um método de compressão desconhecido foi especificado, ou se o arquivo solicitado está armazenando em buffer com Phar::startBuffering() e não foi concluído com Phar::stopBuffering(); uma UnexpectedValueException se o suporte à gravação estiver desabilitado; e uma PharException se algum problema for encontrado durante o processo de criação do phar.
Versão | Descrição |
---|---|
8.0.0 |
format , compression e localName agora são anuláveis.
|
Exemplo #1 Um exemplo de PharData::convertToExecutable()
Usando PharData::convertToExecutable():
<?php
try {
$tarphar = new PharData('meuphar.tar');
// Converte para o formato phar
// Observe que meuphar.tar *não* é excluído
$phar = $tarphar->convertToExecutable(Phar::PHAR); // cria meuphar.phar
$phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
// cria meuphar.phar.tgz
$compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
// lida com erros
}
?>