Phar
&reftitle.intro;
La extensión phar proporciona una manera de colocar aplicaciones PHP enteras dentro de un único fichero
llamado "phar" (PHP Archive) para una distribución e instalación sencillas.
Además de proporcionar este servicio, la extensión phar también provee de un método de abstracción
de formato de fichero para crear y manipular ficheros tar y zip a través de la
clase PharData, tal como
PDO proporciona una interfaz unificada para acceder a diferentes bases de datos. A diferencia de PDO,
la cual no puede realizar conversiones entre bases de datos diferentes, Phar también realiza conversiones entre los
formatos de ficheros tar, zip phar con una sencilla línea de código. Véase
Phar::convertToExecutable para un ejemplo.
¿Qué es phar? Lo archivos Phar están mejor caracterizados como una forma conveniente de agrupar
varios ficheros en un único fichero. Como tal, un archvo phar proporciona una forma para
distribuir una aplicación PHP completa en un único fichero y ejecutarla desde ese mismo fichero
sin necesidad de extraerlo en el disco. Además, los archivos phar pueden ser
ejecutados por PHP fácilmente al igual que cualquier otro fichero, tanto desde la línea de comandos como desde
un servidor web. Phar a web server. Phar es como una memoria USB para aplicaciones PHP.
Phar implementa esta funcionalidad a través de una Envoltura
de Flujo. Normalmente, para utilizar un fichero externo dentro de un script de PHP, se
debería usar includeUtilizar un fichero externo
]]>
Puede considerarse que PHP traduce realemte
/ruta/al/fichero/externo.php a una
envoltura de flujo como file:///ruta/al/fichero/externo.php, y bajo
la cubierta de hecho hace uso de funciones de flujo de envolturas de flujo de ficheros para
acceder a todos los ficheros locales.
Para utilizar un fichero llamado fichero.php contenido en un archivo phar
/ruta/a/miphar.phar,
la sintaxis es muy similar a la sintaxis file:// de arriba.
Utilizar un fichero dentro de un archivo phar
]]>
De hecho, se puede tratar un archivo phar exactamente como si fuera un disco externo, usando
cualquiera de las funciones relacionadas con fopen, opendir y
funciones relacionadas con mkdir para leer, cambiar, o crear nuevos ficheros
y directorios dentro del archivo phar. Esto permite que aplicaciones de PHP completas
sean distribuidas en un único fichero y ejecutarlas directamente desde ese fichero.
El uso más común de un archivo phar es distribuir una aplicación completa
en un único fichero. Por ejemplo, el Instalador de PEAR que se incluye con las versiones
de PHP está distribuido como un archivo phar. Para usar un archivo phar distribuido
de esta forma, se puede ejecutar en línea de comandos o mediante un servidor web.
Los archivos phar pueden ser distribuidos como archivos tar,
zip, o como formato de fichero phar personalizado
diseñado específicamente por la extensión phar. Cada formato de fichero tiene sus ventajas
y desventajas. Los formatos de fichero tar y zip se pueden leer o extraer mediante cualquier
herramienta de terceros que pueda leer el formato, pero necesia la extensión phar para ejecutarlo
con PHP. El formato de fichero phar es personalizado y único para la extensión phar,
y sólo puede ser creado por la extensión phar o el paquete de PEAR
PHP_Archive, pero tiene la
ventaja de que las apliaciones creadas en este formato se ejecutarán incluso si la extensión
phar no está habilitada.
En otras palabra, incluso con la extensión phar deshabilitada, se puede ejecutar o incluir
un archivo basado en phar. El acceso a ficheros dentro de un archivo phar solamente es
posible con la extesnión phar a menos que el archivo phar fuese creado por PHP_Archive.
La extensión phar también es capaz de convertir un archivo phar desde los formatos de fichero tar a zip o
a phar en un único comando:
Convertir un archivo phar, desde phar al formato de fichero tar
convertToExecutable(Phar::TAR, Phar::GZ); // crea miphar.phar.tar.gz
?>
]]>
Phar puede comprimir ficheros individuales o un archivo entero
usando la compresión gzip o
la bzip2, y puede verificar la integridad
del archivo automáticamente a través del uso de las signaturas
MD5, SHA-1, SHA-256 o SHA-512.
Por último, la extensión Phar se preocupa de la seguridad, y deshabilita el acceso a la escritura
de archivos phar ejecutables de manera predeterminada, y requiere la deshabilitación a nivel de sistema del ajuste
phar.readonly de php.ini para crear o
modificar archivos phar. Los archivos tar y zip normales sin una rutina de interoperabilidad ejecutable
siempre pueden ser creador o modificados utilizando la clase PharData.
Si está creando aplicaciones para su distribución, le interesará leer
Cómo crear Archivos Phar. Si desea
más información de las diferencias entre los tres formatos de ficheros que soporta phar,
debería leer Phar, Tar y Zip.
Si usa aplicaciones phar, existen consejos útiles en
Cómo utilizar archivos Phar
La palabra phar es una composición de PHP y
Archive y está basada indirectamente
en el familiar jar (Java Archive) para los desarrolladores Java.
La implementación de archivos Phar está basada en el paquete de PEAR
PHP_Archive, y
los detalles de implementación son similares, aunque la extensión Phar
es mucho más potente. Además, la extensión Phar permite a la mayoría de las aplicaciones
de PHP ejecutarse sin modificaciones, mientras que los archivos phar basados en PHP_Archive
a menudo requieren una extensa modificiación para que funcionen.
&reference.phar.setup;
&reference.phar.constants;
&reference.phar.using;
&reference.phar.creating;
&reference.phar.fileformat;
&reference.phar.Phar;
&reference.phar.PharData;
&reference.phar.PharFileInfo;
&reference.phar.PharException;