Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/03/2014, 14:35
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Tomar valores de una base de datos y colocarlos en un formulario

Cita:
es el método correcto, de hecho así se hace en MVC.
No te olvides lo que es un patrón de diseño: "Es una solución genérica a un tipo de problema en un tipo de contexto definido".
Si el problema es la administración del código, en el contexto de que muchas personas trabajan en el simultáneamente en un gran proyecto, MVC es la mejor solución, fuera de ese contexto, hay otros patrones mejores.

Si se nos dijo que MVC es lo mejor o lo correcto, no hay que repetirlo en todos lados, hay que analizar primero.

En este caso por MVC tendrías:

La clase OpMySQL.
Un controlador que agarra ese conjunto de resultados y los pasa a un array.
Una vista que recibe un array con los resultados y los muestra.
El procedimiento que los arma.

Si tubieses que armar otra clase que tambien muestra un resultado en un combo en otro lado tendrias:
La clase OpMySQL2.
El mismo controlador anterior.
Otra vista.
Otro procedimiento que los arma.

en terminos generales: 3*N+4 Lugares para cambiar codigo.

Si usas una clase estatica tienes:
La clase OpMySQL.
La clase estatica.
El procedimiento que los arma.

Si tubieses que armar otra clase que tambien muestra un resultado en un combo en otro lado tendrias:
La clase OpMySQL2.
La misma clase estatica.
Otro procedimiento que los arma.

en terminos generales: 2*N+3 Lugares para cambiar codigo.

Si en MVC quisieras cambiar como se muestra el select a lo largo de todo el sitio, tendrias que cambiar todas las vistas.
Si usando la clase estatica quisieras cambiar como se muestra el select a lo largo de todo el sitio, tendrias que cambiar en un solo lugar.


Si en MVC quisieras cambiar como se muestra un select determinado, terndrias que cambiar una sola vista.
Si usando la clase estatica quisieras cambiar como se muestra un select determinado tienes que cambiar un solo procedimiento.

La solucion correcta es la que mejor se adapta al contexto. Si nada sabemos del contexto como en este caso, decir que la forma correcta es como se haria en el patron MVC es poco acertado.

PD: Si se estuviera usando un patron MVC, la clase OpMySQL NUNCA contendria en su interior funciones nativas mysqli, en su lugar, usaria un controlador de una clase gestora de bases de datos, que usaria un controlador de otra clase que usaría mysqli

Saludos.
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios