¿Cuáles son las ventajas y desventajas de cada uno de los tres formatos soportados por la extensión phar? Esta tabla intenta responder a esta pregunta.
Funcionalidad | Phar | Tar | Zip |
---|---|---|---|
Formato de archivo estándar | No | Sí | Sí |
Puede ser ejecutado sin la extensión Phar [1] | Sí | No | No |
Compresión por archivo | Sí | No | Sí |
Compresión para todo el archivo | Sí | Sí | No |
Validación por firma de todo el archivo | Sí | Sí | Sí |
Soporte de aplicaciones específicamente web | Sí | Sí | Sí |
Metadatos por archivo | Sí | Sí | Sí |
Metadatos para todo el archivo | Sí | Sí | Sí |
Creación/modificación de archivo [2] | Sí | Sí | Sí |
Soporte completo de todas las funciones de flujo | Sí | Sí | Sí |
Puede ser creado/modificado incluso si phar.readonly=1 [3] | No | Sí | Sí |
[1] PHP no puede acceder directamente al contenido de un archivo Phar sin que la extensión
Phar esté instalada si utiliza un contenedor
que extrae el contenido del archivo phar. El contenedor
creado por Phar::createDefaultStub() extrae
el archivo phar y ejecuta su contenido desde un directorio temporal si
no se encuentra ninguna extensión phar.
[2] Todos los accesos en escritura requieren que phar.readonly
esté
desactivado en el php.ini o directamente desde la línea de comandos.
[3] Solo los archivos tar o zip sin .phar
en su
nombre y sin contenedor ejecutable .phar/stub.php
pueden ser creados si phar.readonly=1.