2009-10-02 24 views
6

esta es una pregunta en PHP principalmente. Me preguntaba: ¿cómo se aseguran de que todas las librerías necesarias estén empaquetadas con su aplicación cuando realiza una implementación en servidores (de producción)?¿Cómo manejas las dependencias de la biblioteca durante la implementación usando PHP?

Un ejemplo más concreto: tengo una aplicación ejecutándose en Zend Framework y cada vez que transfiero la aplicación a un servidor, el proceso de implementación crea una nueva "instalación" en ese sistema. Por lo tanto, necesito combinar Zend Framework junto con mi aplicación y luego copiar los archivos en los lugares correctos (se realiza automáticamente). Actualmente, estoy usando una definición svn: externals para sacar los archivos del sistema SVN de Zend durante la implementación, sin embargo, no quiero confiar en ese SVN y tampoco quiero poner tráfico en SVN externos con cada despliegue. .

En el mundo de Java, estoy acostumbrado a Maven que maneja tales cosas usando repositiones de artefactos centrales. Sé que hay una versión de Maven4PHP, sin embargo, estoy más buscando una solución basada en PHP. Además, no creo que PEAR sea una buena opción, ya que realmente no cumple con mi requisito de agrupar la aplicación (incluidas las librerías) en una sola implementación.

¿Hay alguna herramienta disponible que no sepa? ¿O tienes alguna gran técnica que yo deba saber?

¡Muchas gracias por su ayuda!

Michael

Respuesta

3

Hay un sistema de construcción llamada Phing que está escrito en PHP y basado en Apache Ant.

Personalmente, puedo vivir con elementos externos.

+1

Sí, lo sé Phing! ¿Existe una tarea lista para usar para resolver dependencias? ¿O se trata de escribir mi propia tarea? ¡Gracias! –

+0

@Michael Manejo las dependencias con phing con un enfoque más simple. Puede que no sea tan robusto como probablemente debería ser una tarea de dependencia, pero tengo un conjunto de auxiliares que son simples scripts de compilación diseñados para ser incluidos con la tarea de importación, en mi ayudante de proyecto define una tarea de resolver-deps que es un foreach que ejecuta una tarea de actualización a un script de compilación externo con propiedades asignadas que definen la dependencia. –

0

Aún no está listo para la producción, pero es posible que desee vigilar el proyecto Phark. Es un puerto de Bundler a PHP.

Al mirar a través de las diapositivas Simplify your external dependency management encontré una herramienta llamada pantr que se puede utilizar como un instalador PEAR. pantr as PEAR installer que le permite especificar sus dependencias en un archivo específico del proyecto.

El artículo Version Control != Dependency Management tiene alguna información sobre el uso del nuevo instalador de PEAR llamados Pyrus

3

creo que el vendor branching resolvería el problema de su ejemplo muy sencillo, pero si también no le gusta grandes repositorios que había recomendado para seguir mirando en los juguetes modernos como composer y what it solve (y tal vez phark, nunca escuché antes :))

+0

+1 por mencionar compositor, esta es una vieja pregunta que considero, sin embargo, ahora la mayoría absoluta de los proyectos PHP usan Composer para la gestión de la dependencia. –

Cuestiones relacionadas