Estoy interesado en descubrir cómo las personas están implementando sus aplicaciones CakePHP. Recientemente me han contactado para hacer un poco de desarrollo independiente de CakePHP, lo que sería una buena oportunidad para obtener experiencia en el nivel de presentación (en mi trabajo de FT, desarrollo Java EE en los niveles de negocios y de persistencia).Despliegue de la aplicación CakePHP
Mis pensamientos son un poco desorganizado en este momento, pero estoy teniendo en cuenta los siguientes escenarios:
desarrollador que trabaja en un IDE modifica un archivo, que es de forma automática (en el fondo) sincronizados con una servidor web de desarrollo ejecutándose localmente. Este escenario es la forma ideal en que me gustaría hacer el desarrollo ... hacer un cambio y poder ver el cambio en acción sin ningún paso adicional.
Desarrollador que trabaja en un IDE modifica un archivo, que se sincroniza automáticamente (en el fondo) a través de FTP con un servidor web de desarrollo que se ejecuta de forma remota. Este escenario sería útil cuando viajo usando mi netbook (que ejecuta mi IDE lo suficientemente lento ya que es sin un servidor web en la mezcla).
- Administrador implementa la última versión de una aplicación CakePHP desde un repositorio de código fuente a un servidor web que se ejecuta localmente.
- Administrador implementa la última versión de una aplicación CakePHP desde un repositorio de código fuente a un servidor web a través de FTP.
- Administrador implementa una versión anterior de una aplicación CakePHP desde un repositorio de código fuente a un servidor web que se ejecuta localmente.
- Administrador implementa una versión anterior de una aplicación CakePHP desde un repositorio de código fuente a un servidor web a través de FTP.
Las herramientas de desarrollo con las que me siento más cómodo son Eclipse, Ant y Subversion. Mi preferencia es continuar usándolos, pero consideraría cambiar si hacerlo facilita la consecución de los escenarios.
Preguntas:
- Son estos escenarios razonables, o debe hacer tengo que pensar en el desarrollo y despliegue de una manera diferente?
- ¿Qué herramientas existen que pueden ayudar a simplificar el desarrollo/implementación? ¿Sería mejor para mí rodar mi propia solución con Ant, scripts, etc.?
- ¿Cómo manejamos los problemas de la base de datos durante la implementación? ¿Cómo se especifican las propiedades de conexión de la base de datos para una implementación en particular? ¿Qué sucede si actualizar a una versión más nueva (o volver a una versión anterior) de la aplicación CakePHP requiere un cambio en el esquema de la base de datos y la migración de datos?
- ¿Cómo configuramos las propiedades que varían entre las implementaciones? Por ejemplo, considere aumentar los niveles de depuración y registro utilizados durante el desarrollo, evitando que los pagos se envíen a las pasarelas de pago durante el desarrollo, etc.
- ¿Cómo afecta la actualización o la reversión de una implementación a los clientes? Por ejemplo, ¿qué sucede si se encuentran en medio de una transacción (por ejemplo, comprando un producto)?
- ¿Cómo manejamos diferentes tipos de instalación de CakePHP? Los archivos pueden necesitar ser instalados en diferentes ubicaciones dependiendo del tipo de instalación. ¿Cómo podemos saber dónde se deben instalar los archivos? El libro de CakePHP describe desarrollo, producción e instalaciones avanzadas.
Lo siento por tantas preguntas en una sola publicación, pero creo que todas las preguntas están relacionadas y pensé que sería útil mantener la discusión en un solo lugar.
Se pueden encontrar scripts de migración DB alternativos aquí: http://stackoverflow.com/questions/2522372/good-db-migrations-for-cakephp – deizel