Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Duda MVC - Consultas SQL en Controlador

Estas en el tema de Duda MVC - Consultas SQL en Controlador en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Cordial Saludo Llevo dos días laborando en mi nuevo empleo, en el cual se desarrolla con el Yii Framework, veo que hay quien escribe consultas ...
  #1 (permalink)  
Antiguo 21/03/2012, 13:47
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Duda MVC - Consultas SQL en Controlador

Cordial Saludo

Llevo dos días laborando en mi nuevo empleo, en el cual se desarrolla con el Yii Framework, veo que hay quien escribe consultas SQL en el controlador e insite en que eso está bien, argumentando que en Yii los modelos no deben ser modificados, ante lo cual me siento un poco confundido ya que aunque nunca he trabajado con frameworks si he trabajado con MVC (de forma manual, yo mismo creo mis controladores, modelos y vistas), por lo cual me da muy mala impresión (considero que no es una buena práctica) la idea de escribir código SQL en un controlador, cuando se supone que en el MVC cada cosa tiene su lugar (esto con el fin de tener un código limpio y ordenado), por esto mismo escribo aquí, para conocer la opinión y concepto (frente a este tema) de quienes han desarrollado con este framework, ¿acaso Yii maneja una filosofía diferente ó soy yo quien está equivocado y está bien escribir consultas SQL en un controlador?.

Quedo atento a sus comentarios.

Muchas gracias por su atención.
  #2 (permalink)  
Antiguo 21/03/2012, 14:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda MVC - Consultas SQL en Controlador

Estas correcto, no debe de haber consultas SQL en el controlador, todo eso pertenece al Business Logic de la aplicación (o sea el modelo) la idea es que del controlador simplemente consumas el modelo y lo pases a la vista, no tiene porque haber decisiones de lógica en el controlador para nada (o en su defecto las menos posibles).
  #3 (permalink)  
Antiguo 21/03/2012, 14:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Duda MVC - Consultas SQL en Controlador

SQL en los controllers..., sin palabras, dudo mucho que los modelos no deban ser modificados y si así fuera la solución no es tener SQL en los controllers, es una forma muy pobre de manejarlo, no se como funciona Yii ni cuales son las recomendaciones pero entiendo que tiene un mix de AR + Table Data Gateway, teniendo esto en cuenta el SQL deberia ir en las clases que extiendan el AR + Table.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 21/03/2012, 15:27
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Respuesta: Duda MVC - Consultas SQL en Controlador

Muchas gracias por su atención y comentarios, no puedo negar que me genera un poco de satisfacción al leer sus comentarios, en especial el de alguien como GatorV, si tienen algo más que aportar quedo totalmente agradecido.
  #5 (permalink)  
Antiguo 21/03/2012, 15:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Duda MVC - Consultas SQL en Controlador

Te recomiendo este link: http://weblog.jamisbuck.org/2006/10/...ller-fat-model no es de PHP, si no de Ruby, pero el concepto se entiende, la idea es que tu controller sea lo más genérico posible para que responda ante múltiples requests.

Saludos.
  #6 (permalink)  
Antiguo 21/03/2012, 19:19
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Respuesta: Duda MVC - Consultas SQL en Controlador

Podrías pedirle al compañero tuyo que se de una vuelta por acá y exponga sus argumentos. Quizá tenga una razón válida.
__________________
Drupal Argentina
  #7 (permalink)  
Antiguo 21/03/2012, 20:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Duda MVC - Consultas SQL en Controlador

el problema viene de conceptos y muchos de los que realizan los framework también venden esto así, de hecho hay muchos tutoriales de Framework que indican que los modelos es solo para indicar la tabla de la DB y las relaciones, lo demas, consultas y la lógica es parte del controlador y es un error viendo lo que indica el patron MVC en su teoría y hace que los que estamos metiendonos con los Frameworks adoptemos este concepto aunque no sea correcto, por eso es importante de que antes de meternos con cualquier fw primero conozcamos las bases, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 22/03/2012, 08:40
Avatar de JairLizcano  
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 16 años, 5 meses
Puntos: 53
Respuesta: Duda MVC - Consultas SQL en Controlador

Es evidente que en la teoría que aplica a MVC no va, pero ten en cuenta que aún se mantiene la idea de la identidad (aquello, llámese como sea, que diferencia a algo de "otra cosa").

Cuando se hablaba de medios de clases se recurría a alejar toda función o propiedad que ligara su identidad, es decir; limitar una función, por ejemplo para este caso, con una consulta SQL que bien sabemos será relacionado con el objeto que a su vez no debería porque limita la función "editar"(o bien eliminar, insertar,..) a sólo una tabla en la base de datos y sus respectivos campos. y es ahí donde se mencionaban los medios de clases como solución, que es a lo que posiblemente tu colega hace elocuencia, aunque claro... es una razón justificable y no diría que primitiva.

Para el MVC es interesante plantear modelos por objetos, donde un modelo de determinado objeto es quien mantiene las diferentes consultas SQL o la parte ajena a la identidad de la clase. Generalmente ese modelo por objeto conserva como propiedad el objeto a quien afectan sus propiedades y funciones.

Que desde mi punto de vista y documentación, es lo que debería explicarle a tu colega.
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.

Etiquetas: controlador, framework, mvc, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:02.