Phar::convertToExecutable

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

Phar::convertToExecutableConverte um arquivo phar em outro formato de arquivo executável phar

Descrição

public Phar::convertToExecutable(?int $format = null, ?int $compression = null, ?string $extension = null): ?Phar

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.

Este método é usado para converter um arquivo PHAR para outro formato de arquivo. Por exemplo, ele pode ser usado para criar um arquivo PHAR executável baseado em tar a partir de um arquivo PHAR executável em zip ou de um arquivo PHAR executável no formato PHAR. Além disso, ele pode ser usado para aplicar compactação de todo o arquivo a um arquivo baseado em tar ou PHAR.

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.

Parâmetros

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.

Valor Retornado

O método retorna um objeto Phar em caso de sucesso, ou null em caso de falha.

Erros/Exceções

Este método lança uma BadMethodCallException quando não é possível compactar, um método de compactação desconhecido foi especificado, 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.

Registro de Alterações

Versão Descrição
8.0.0 format, compression e extension agora são anuláveis.

Exemplos

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

Using Phar::convertToExecutable():

<?php
try {
$tarphar = new Phar('meuphar.phar.tar');
// converte para o formato de arquivo phar
// observe que meuphar.phar.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 = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (
Exception $e) {
// lida com o erro aqui
}
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
0
alex at phpguide dot co dot il
14 years ago
Convert to executable and compress methods override any stub you have created with their own stub which is responsible for extracting/executing self's content.

calling setStub() after convertingToExecutable doesn't help either. As far of php 5.3.6 (phar 2.0.1 ) if you want to have a phar archive accessible threw the web, you'll have to create your own
index.php which will include a nonexecutable phar and act as the bootstrap.
To Top