Quais são os pontos positivos e negativos dos três formatos de arquivo suportados na extensão phar? Esta tabela tenta responder a essa pergunta.
| Característica | Phar | Tar | Zip |
|---|---|---|---|
| Formato de arquivo padrão | Não | Sim | Sim |
| Pode ser executado sem a extensão Phar [1] | Sim | Não | Não |
| Compactação por arquivo | Sim | Não | Sim |
| Compactação de arquivo inteiro | Sim | Sim | Não |
| Validação de assinatura de arquivo inteiro | Sim | Sim | Sim |
| Suporte a aplicativos específicos da Web | Sim | Sim | Sim |
| Metadados por arquivo | Sim | Sim | Sim |
| Metadados de arquivo inteiro | Sim | Sim | Sim |
| Criação/modificação de arquivo [2] | Sim | Sim | Sim |
| Suporte total para todas as funções do empacotador de fluxo | Sim | Sim | Sim |
| Pode ser criado/modificado mesmo que phar.readonly=1 [3] | Não | Sim | Sim |
[1] O PHP só pode acessar diretamente o conteúdo de um arquivo Phar
sem a extensão Phar se estiver usando um stub
que extrai o conteúdo do arquivo Phar. O stub
criado por Phar::createDefaultStub() extrai
o arquivo Phar e executa seu conteúdo a partir de um diretório temporário
se nenhuma extensão Phar for encontrada.
[2] Todo acesso de gravação requer que phar.readonly
seja desabilitado no php.ini ou diretamente na linha de comando.
[3] Somente arquivos tar e zip sem .phar em seu
nome de arquivo e sem um stub executável .phar/stub.php
podem ser criados se phar.readonly=1.