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

controlador-modelo

Estas en el tema de controlador-modelo en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo dos clases: GestorNoticias (controlador) noticia (modelo) la clase noticia(modelo) tiene atributos propios de la noticia (idNOticia, cuerpoNoticia....) Entonces si la vista quiere mostrar 1 ...
  #1 (permalink)  
Antiguo 23/02/2008, 08:30
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
controlador-modelo

Tengo dos clases: GestorNoticias (controlador) noticia (modelo)
la clase noticia(modelo) tiene atributos propios de la noticia (idNOticia, cuerpoNoticia....)
Entonces si la vista quiere mostrar 1 noticia cooncreta, no hay problema, se lo notifica al controlador y el controlador al modelo. Entonces la clase noticia ira a la BD la cojera...la devolvera...etc...

El problema es cuando la vista notifica al GestorNoticias que quiere mostrar las primeras 50 noticias. Entonces claro, el Gestor podria ir a la clase noticia y decirle : "oye clase noticia pasame un array que contenga las 50 noticias". La clase noticia solo tendria k ir a la BD y cojer lo que le piden. Pero no creen que haciendolo así pierde sentido? Es decir, el GestorNoticias esta yendo a la clase noticia(modelo) a pedirle 50 noticias.................no lo veo muy logico...........y nose como hacerlo para que sea mas logico

entienden mi duda?

he pensado en crear en el mismo archivo noticia.php otra clase que sea listaNoticias y que tambien tenga acceso a la BD es decir, el archivo estaria formado por dos clases una class notiticia y otra class listaNoticias siendo ambas parte del modelo.

que opinan?
  #2 (permalink)  
Antiguo 23/02/2008, 10:09
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Re: controlador-modelo

Podrías hacer un modelo desde el que poder sacar una noticia o un array de noticias.
Código PHP:
class modeloNoticia {

    function 
getNoticiaById() {
    
// devuelve una sola noticia
    
}

    function 
getNoticiasByFecha() {
    
// devuelve un array de noticias
    
}


Un saludo
  #3 (permalink)  
Antiguo 23/02/2008, 11:23
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 7 meses
Puntos: 56
Re: controlador-modelo

Bueno, en mi opinión el controlador es el intermediario entre modelo y vista; para este caso en particular, cuando la vista solicita la lista de noticias, el controlador se la pide al modelo el cual solo se encarga de devolver el listado; el controlador formatea el listado y se lo regresa a la vista. Para eso debe existir una función en el controlador que te permita realizar la interacción entre vista-controlador-modelo.
Espero que te sea de utilidad.
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #4 (permalink)  
Antiguo 24/02/2008, 06:33
 
Fecha de Ingreso: octubre-2007
Mensajes: 394
Antigüedad: 16 años, 6 meses
Puntos: 2
Re: controlador-modelo

yaya si asi lo esto haciendo pero mi """problema"""" estaba orientada a perdida de significado.
Osea yo tengo la clase noticia la cual funciona como modelo y tieen como atributo pues....cosas referentes a la noticia. Entonces que el controlador venga a esta clase a pedirle UNA LISTA DE NOTICIAS, osea un ARRAY LLENO DE NOTICIAS.......ps me parecia k no tenia mucha logica...............es como si vas a la clase persona y le pides k te mande una lista de persona........nose.....si vas a la clase persona ps pediras cosas de una persona concreta, insertaras una persona, le cambiaras el apellido...bla bla......

por eso, lo mas seguro es que haga lo siguiente
crear un archivo modelo_persona.php (ejemplo) y dentro de este dos clases (modelo) una que sea llame persona y otra que se llame listaPersonas de manera que cada una tendra metodos que le correspondan al 100%

que tal lo veis¿
  #5 (permalink)  
Antiguo 24/02/2008, 09:02
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: controlador-modelo

Podrias utilizar una clase abstracta, e implementar herencia...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
  #6 (permalink)  
Antiguo 09/03/2008, 09:04
Avatar de vanetino  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima, Peru
Mensajes: 22
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: controlador-modelo

yo creo que estan por mal camino, hay un problema de diseño, solo basta con crear una clase noticias en el modelo con el cual podras trabajar siempre que se trate de manejar la noticias como una coleccion, algo como de colegio a alumnos.
Código PHP:
class Noticias{

    function 
getNoticiaById() {
    
// devuelve una sola noticia
    
}

    function 
getNoticiasByFecha() {
    
// devuelve un array de noticias
    
}

    function 
addNoticia() {
     
// agrega una noticia a la coleccion
    
}

    function 
deleteNoticia() {
     
// elimina una noticia de la coleccion de noticias 
    
}

   ...


Saludos

Vanetino
  #7 (permalink)  
Antiguo 10/03/2008, 07:52
 
Fecha de Ingreso: septiembre-2003
Mensajes: 96
Antigüedad: 20 años, 7 meses
Puntos: 3
Re: controlador-modelo

Creo que hay un pequeño problema conceptual.

Una clase modelo, modeliza un registro de la base de datos como un objeto. Es decir, la clase noticia, modeliza un registro de la tabla noticias.

Por otro lado, la clase gestorNoticias, debe actuar como capa de acceso a datos, es decir, la clase que se entiende con la base de datos para recuperar registros (o borrarlos, modificarlos o insertarlos) y devolver objetos de tipo noticia.

Y en cuanto al controlador, es lo que está por encima de todo ello. El controlador e un "ente" al que le dices, tengo estos datos y quiero hacer esto (tengo un post y quuiero guardar una noticia". Entonces el controlador te coge los datos, y hablará con la clase gestorNoticias y le dirá: "gestorNoticias, toma esta base de datos y estos datos y guarda una noticia machote".
  #8 (permalink)  
Antiguo 14/03/2008, 14:13
Avatar de pragone  
Fecha de Ingreso: diciembre-2007
Ubicación: Madrid
Mensajes: 223
Antigüedad: 16 años, 4 meses
Puntos: 2
Re: controlador-modelo

Blade_Storm,

La verdad no veo tan ilógico lo que indicas... aunque creo entender a lo que te refieres.
Me parece que la solución conceptual al problema que planteas está un poco relacionada con los conceptos de métodos estáticos y "normales" de las clases.

Es decir, yo no veo mal que tu clase Noticia (la que mapea los campos de la tabla) tenga adicionalmente métodos estáticos que sean para recuperar registros de la tabla.

Verás, al trabajar con la clase, si lo haces a nivel de instancia, es que estás trabajando con un registro particular, que es el comportamiento que ves como "normal" en el uso de la clase Noticia.
Sin embargo los métodos estáticos existen precisamente para cuando debes trabajar con una colección de objetos/instancias de una clase específica. Por esto el que puedas usar la clase Noticia directamente para pedirle los últimos 50 registros no me parece un error conceptual siempre que lo hagas de forma estática.

Espero te ayude.
__________________
pragone
Blog: Desarrollo, comunidad y monetización
Últimos artículos: Tips de Smarty
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 18:14.