2010-08-19 15 views
13

PHP 5.3 tiene una nueva característica llamada PHAR similar a JAR en JAVA. Básicamente es un archivo de archivos PHP. ¿Cuáles son sus ventajas? No puedo entender cómo pueden ser útiles en el escenario web.Ventajas de archivos en PHP PHAR

Cualquier otro uso distinto de "facilidad de despliegue" - desplegar una aplicación completa con sólo copiar un archivo

+0

http://www.ibm.com/developerworks/opensource/library/os-php-5.3new4/index.html?ca=dgr-lnxw16PHP5.3-Phar&S_TACT=105AGX59&S_CMP=grsitelnxw16 –

Respuesta

18

Existen enormes ventajas para proyectos de código abierto (sin ningún orden en particular).

  1. Implementación más fácil significa una adopción más fácil. Imagine: instala un CMS, foro o sistema de blog en su sitio web arrastrándolo a su cliente FTP. Eso es todo.

  2. Una implementación más sencilla significa una seguridad más fácil. Actualizarse a la última versión de un paquete de software será mucho menos complicado si solo tiene un archivo del que preocuparse.

  3. Despliegue más rápido. Si su servidor de Internet no le brinda acceso de shell, no necesita descomprimirlo antes de cargarlo, lo que reduce la sobrecarga de transferencia por archivo.

  4. Compartimentación innata. Los archivos que forman parte del paquete se distinguen claramente de las adiciones o personalizaciones. Usted sabe que puede reemplazar fácilmente el archivo pero necesita hacer una copia de seguridad de su configuración y plantillas personalizadas (y no todas están mezcladas).

  5. Bibliotecas más fáciles. No necesita averiguar cómo usar el instalador PEAR o averiguar si esta o esa biblioteca tiene una estructura de directorios anidada, o si debe incluir X, Y o Z (¿en ese orden?). Solo cargue, incluya archivos, comience a codificar.

  6. Más fácil de mantener. ¿No está seguro de si actualizar una biblioteca romperá su aplicación? Solo reemplázalo. ¿Roto? Revertir un archivo. Ni siquiera necesita tocar su aplicación.

  7. Lo que ves es lo que obtienes. Lo más probable es que alguien no se tome la molestia de manipular con un archivo, por lo que si ve uno instalado en un sistema que mantiene, puede estar bastante seguro de que no tiene los piratas informáticos sutilmente defectuosos al azar. Y un hash puede decirle rápidamente qué versión es o si ha sido cambiado.

Do not poo-poo por lo que es más fácil de implementar cosas.No hará ninguna diferencia para SaaS de cosecha propia, pero para cualquier persona que envíe o instale paquetes de software PHP, cambiará las reglas del juego.

+4

Así que son 7 puntos en un archivo único impresionante, pero no mencionó cómo afecta a nada, excepto la implementación. Me parece que no es lo mejor para el rendimiento. ¿Alguna idea sobre eso? – naugtur

+1

@naugtur eso es porque la implementación es un gran problema. Hacer que alguien pruebe su software web (de código abierto o no) es el paso más difícil para su adopción. Si les dices "¡simplemente deja este simple archivo en tu servidor!" ese es un buen punto de venta para ese momento crítico. –

2

La ventaja es la facilidad de despliegue, principalmente. Implementa una aplicación completa simplemente copiando un archivo.

Las bibliotecas también se pueden usar sin expandirse.

1

Cualquier herramienta que trabaje en un solo archivo "de repente" funciona con todos los archivos de una aplicación a la vez.
P. ej. transporte: puede cargar la aplicación completa a través de un solo elemento de entrada/archivo sin pasos adicionales.
P. ej. firmar una solicitud: suma de comprobación/firmar el archivo - > suma de comprobación/firma para toda la aplicación.
...

+1

que se podía hacer, así con un tarball comprimido con gz ... Así que la única ventaja es que no tienes que expandirlo en la implementación ... lo que es IMO no es muy útil, especialmente. ya que la mayoría de las veces también tiene que escribir archivos de configuración en algún lugar. – Artefacto

5

En teoría, también debería mejorar la velocidad de carga. Si tiene muchos archivos que deben incluirse, reemplazarlos con una sola inclusión le ahorrará tiempo en las operaciones de apertura de archivos.

+0

No creo que esto haga una diferencia en Linux, y dudo que la gente use Windows para el trabajo serio del lado del servidor (fuera de .NET), pero me gustaría que fuera cierto. –

+0

No estoy seguro de hacer un trabajo serio, pero uso PHP y Windows en producción (no estoy loco, era un requisito del cliente). – Maxence

4

En mi experiencia, los archivos fuente PHP empaquetados sin formato que se encuentran en un entorno de producción invitan jugando con el código en tiempo real cuando se necesita una solución. La implementación en un archivo .phar desalienta este comportamiento y ayuda a reforzar mejores prácticas, es decir, compilar y probar en un entorno local, y luego implementar en producción.