Foros del Web » Programando para Internet » PHP » CodeIgniter »

Duda sobre el patrón MVC

Estas en el tema de Duda sobre el patrón MVC en el foro de CodeIgniter en Foros del Web. Hola a todos, ¿cómo están? Les comento que decidí aprender sobre el patrón MVC, estuve investigando un poco sobre los frameworks PHP que podía usar ...
  #1 (permalink)  
Antiguo 09/06/2012, 16:51
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Duda sobre el patrón MVC

Hola a todos, ¿cómo están?
Les comento que decidí aprender sobre el patrón MVC, estuve investigando un poco sobre los frameworks PHP que podía usar y terminé eligiendo CodeIgniter. Además de esto, estoy haciendo un curso sobre programación por capas (presentación, negocio, datos y entidades) en Visual Basic 2010. Todo esto mientras voy aprendiendo POO.
El problema es que no estoy seguro de cómo hacer los modelos en el patrón MVC, me queda bastante claro cómo funcionan los controladores y las vistas, pero en la programación por capas que utilizo en Visual Basic hay una capa de datos donde están todas las clases de las entidades (por ejemplo Usuario, CategoríaUsuario, Localidad, Provincia, etc.) y para cada una de ellas se definen los métodos Add, Update, Delete, GetOne, GetAll que realizan las consultas a la base de datos... Ahora, ¿en el patrón MVC sería "igual"? ¿debo crear un modelo para cada una de esas clases con los distintos métodos de cada una, y los llamo desde cada controlador donde los necesito? Porque si creo un modelo con las clases que utilizo en un controlador determinado, ¿qué pasa si necesito trabajar con la misma entidad en dos controladores diferentes? Entiendo que un patrón de diseño como MVC puede no considerarse lo mismo que una arquitectura como la programación por capas (es un tema que vi que se discutió en este foro), pero me serviría mucho que me den pistas sobre cómo implementar los modelos.
Espero que se entienda. Desde ya, gracias.
Saludos.

Última edición por RabidFish; 09/06/2012 a las 17:36
  #2 (permalink)  
Antiguo 10/06/2012, 18:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda sobre el patrón MVC

Esa es precisamente la idea que hagas diferentes modelos con todos tus procesos y los consumas desde tus controladores, sí están correctamente separados, vas a poderlos consumir desde el controlador que quieras.

Recuerda que en MVC toda la lógica del negocio esta en el modelo, y la capa del modelo se puede abrir en "n" capas internas.

Saludos.
  #3 (permalink)  
Antiguo 10/06/2012, 19:48
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Duda sobre el patrón MVC

Muchas gracias por tu respuesta GatorV, me das confianza para que pueda ir largándome con una aplicación. La verdad es que todavía me cuesta un poco establecer o identificar también los controladores candidatos, por ejemplo, en un principio pienso que dentro del controlador "usuarios" podría tener métodos como "agregar", "eliminar", "login", "recuperar contraseña", pero me entra la duda si "login" o "recuperar contraseña" deberían ser controladores distintos. Espero ir aprendiendo eso con la práctica.
Un saludo.
  #4 (permalink)  
Antiguo 10/06/2012, 20:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Duda sobre el patrón MVC

Piensa en los controladores como puntos de entrada, la idea es que un controlador sea lo más parametizable posible (es decir que actué diferente pero sea el mismo código) trata de pensar más de esa manera, así tus modelos van a tener el "core" de tu aplicación y tus controladores van a ser simplemente puntos de entrada, donde solamente haces tasks más simples (limpiar variables, escapar cosas, etc) y pasar el proceso al modelo, y posteriormente pasarlos a la vista.

Saludos.

Etiquetas: framework, mvc, php, poo
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




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