2010-11-08 9 views
5

Un db con varios cientos de tablas generalmente tendrá más de pocas enumeraciones/conjuntos definidos en él.
¿Cómo se sincroniza el código PHP con los valores enum, para evitar el uso de literales de cadena en el código (que todos sabemos que parece más fácil, pero a la larga provoca errores estúpidos).
La única buena solución que puedo pensar es usar, durante la compilación del proyecto, un proceso que generará constantes para todas las enumeraciones en el DB, o bien, crear y compilar una extensión PHP con esos valores.
¿Alguna solución diferente, mejor por ahí?¿Cómo se sincronizan las enumeraciones en DB con su código PHP?

Respuesta

3

Como diría Platón: o bien PHP y SQL son independientes, o SQL se genera a partir de PHP, o PHP se genera a partir de SQL, o ambos se generan desde la misma fuente.

La primera suele ser inaceptable si se producen muchos cambios, pero por lo demás es bastante estable.

Lo segundo es lo que sucede con un lof de soluciones recientes que administran su SQL desde el lado de PHP (y manejan con gracia los cambios de esquema desde el lado de PHP también). Esto significa que tus habilidades locas de SQL ninja podrían ser inútiles y frustrante.

El tercero es lo que sugiere. Está bien siempre que pueda administrar la parte "generado durante la construcción" sin pisar los dedos de su sistema de control de fuente y su sistema de paquete. Tener un sistema de compilación limpio ayuda (lo cual es algo inusual en PHP).

El cuarto consiste en adaptar una herramienta de modelado de base de datos existente para generar tanto el esquema SQL como el código PHP. De esta forma, simplemente trabajaría con la herramienta una vez cada dos semanas, generaría tanto PHP como SQL y comprometería el resultado. La adaptación de la herramienta, sin embargo, puede ser bastante desagradable (de nuevo, puede intentar buscar una exportación XML y trabajar desde allí).

Cuestiones relacionadas