Pregunta

¿Alguien usa Phing para implementar aplicaciones PHP y, de ser así, ¿cómo se usan?Actualmente tenemos un script de "configuración" escrito a mano que ejecutamos cada vez que implementamos una nueva instancia de nuestro proyecto.Simplemente salimos de SVN y lo ejecutamos.Establece algunas variables de configuración básicas, instala o recarga la base de datos y genera un v-host para la instancia del sitio.

A menudo he pensado que tal vez deberíamos utilizar Phing.No he usado mucho ant, así que no tengo una idea real de lo que Phing se supone que hace algo más que un script para copiar archivos de un lugar a otro, de forma muy parecida a como lo hace nuestro script de configuración.¿Cuáles son algunos usos más avanzados de los que puede dar ejemplos para ayudarme a comprender por qué querríamos o no integrarnos? Phing en nuestro proceso?

¿Fue útil?

Solución

De Federico Cargnelutti entrada en el blog:

Las características incluyen transformaciones de archivos (p. ej.Reemplazo del token, transformación XSLT, transformaciones de plantilla Smarty), operaciones del sistema de archivos, soporte de compilación interactiva, ejecución de SQL, operaciones CVS, herramientas para crear paquetes de peras y mucho más.

Por supuesto, puedes escribir scripts personalizados para todo lo anterior.Sin embargo, utilizar una herramienta de compilación especializada como Phing le brinda una serie de beneficios.Utilizará un marco probado, por lo que en lugar de tener que preocuparse por configurar la "infraestructura", podrá concentrarse en el código que necesita escribir.El uso de Phing también hará que sea más fácil cuando nuevos miembros se unan a su equipo, podrán comprender qué está sucediendo si han usado Phing (o Ant, que es en lo que se basa Phing) antes.

Otros consejos

Pasé de Ant a Phing "solo porque" es PHP.Lo uso para exportar desde diferentes repositorios de Subversion, copiar cosas, crear diferentes paquetes de instalación, etc., todo eso con un archivo xml reutilizable de 20 líneas y un archivo de configuración con cosas específicas del proyecto.De ninguna manera podría hacerlo tan rápido con un script personalizado.También planeo integrar la generación de documentación API y pruebas unitarias.¡Me encanta!

La respuesta convincente para mí es que phing entiende los classpaths de PHP.La hormiga no lo hace.No quiero tener un ant build.xml lleno de comandos ejecutivos.Resulta que soy principalmente un programador de Java y todavía uso phing.Es la mejor herramienta para el trabajo.

Usamos phing para implementar SemánticaScuttle:

  • generar archivo zip para distribución
  • crear PERA paquete
  • subir cremallera a SourceForge
  • actualizar el canal pera con el nuevo archivo del paquete
  • renderice la documentación de reStructuredText en archivos html y cárguelos.Actualmente con exec pero estoy en camino escribiendo un tarea separada para ello.

La carga del archivo zip y el canal se realiza a través de rsync, que desafortunadamente no es compatible con phing a través de una tarea especial, pero usando exec Siempre es posible y funciona muy bien.

Al final, ahorra mucho tiempo y podemos probar, empaquetar e implementar nuestra aplicación con un solo comando (lo que nos da otro punto en el prueba joel).No quisiera vivir sin él.

Ver el código build.xml.

No veo ninguna razón convincente para utilizar phing.Quiero decir, ¿deberían los programadores de PHP intentar reescribir Eclipse "sólo porque" de alguna manera podría ser más fácil escribir complementos de Eclipse en PHP?No me parece.

Ant tiene mejor documentación, incluidos algunos buenos libros de O'reilly, y está bien establecido en el universo Java, por lo que evita los problemas de (1) "aún no hemos copiado la característica X a phing" y (2) el riesgo del proyecto phing muriendo. Aquí está un artículo sobre la configuración de PHPUnit para que funcione con ant y cruisecontrol:No es tan difícil.Y obtienes la integración de eclipse de forma gratuita.

¡Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top