Foros del Web » Programando para Internet » PHP »

Problema con herencia php poo

Estas en el tema de Problema con herencia php poo en el foro de PHP en Foros del Web. Veran, quiero hacer un "sistema" de blog en php poo e iba a empezar haciendo la clase Blog, que mantiene las funciones generales del blog, ...
  #1 (permalink)  
Antiguo 23/06/2011, 17:12
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 11 meses
Puntos: 3
Problema con herencia php poo

Veran, quiero hacer un "sistema" de blog en php poo e iba a empezar haciendo la clase Blog, que mantiene las funciones generales del blog, como obtener los posts, y otra clase "post" (subclase de blog) que se encargue de manejar los post, de manera que el objeto blog devuelva un array de objetos post.

En Blog, hice que el constructor se engargara de inicializar un objeto que maneja la base de datos, pero resulta que cada vez que creo un objeto post, este ejecuta el constructor de Blog, creando así otro objeto de conexión a la db, ¿hay alguna forma de resolver esta herencia? Intenté con private function __construct() pero al crear el blog necesito ejecutar el __construct



Saludos

Última edición por Carlmycol; 23/06/2011 a las 17:20 Razón: (ho)rror ortografico
  #2 (permalink)  
Antiguo 23/06/2011, 17:25
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Problema con herencia php poo

Lo ideal sería que apliques el patrón MVC y separes la lógica de las conexiones a la base de datos.
  #3 (permalink)  
Antiguo 23/06/2011, 17:32
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: Problema con herencia php poo

Puedes utilizar un Registry y que tus clases hagan un fallback a este, teniendo siempre en cuenta los drawbacks de un sistema así(oculta dependencias), otra opción mas elegante seria utilizar DI.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 23/06/2011, 22:52
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Problema con herencia php poo

Buenas, gracias a ambos por sus respuestas, he investigado un poco y me ha llamado la atención el MVC, he encontrado algunos tutoriales "introductorios", sin embargo, si tienen alguno que ofrecerme que consideren bueno, les agradecería sobremanera

Aún así, que piensan acerca de hacer la clase post, hija de blog? la clase post tambien hereda la funcion $bolg->getPosts(); osea los posts tienen $post->getPosts(); como si se tratacen de blogs. ¿Tambien eso se solucionaria con MVC? siendo post una clase hija del modelo de post supongo.

Saludos

Última edición por Carlmycol; 23/06/2011 a las 22:58
  #5 (permalink)  
Antiguo 25/06/2011, 06:21
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Problema con herencia php poo

Hola, disculpa por revivir y/o hacer doble post. Lo hago por si alguna persona le pasa lo mismo que yo para que vea como lo he solucionado. He aplicado el patrón singleton a la base de datos para evitar el clonado, así maneja una sola conexión y por lo tanto un solo cierre, de igual manera muchas gracias a ambos por sus respuestas es mi deber investigar mas acerca del tema, les dejo puntos de karma. Dios les bendiga.

Me llamó mucho la atención el patrón MVC, porque es justo lo que estaba haciendo (aunque no sabía), pero me falta mas aprenderlo, gracias de nuevo.

Saludos
  #6 (permalink)  
Antiguo 25/06/2011, 07:50
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: Problema con herencia php poo

Singleton de por si no es una buena idea y en la conexión a la bbdd es muy mala idea, podes googlear y vas a encontrar mucha info del porque, es preferible utilizar Registry.

En cuanto a la herencia, que razón hay para que Post herede de Blog ?, por lo que entiendo de tu sistema Blog manejaría la colección y Post representa la unidad, ahora si Post también maneja la colección, para que existe la clase Blog ?.

Te dejo una referencia http://web2development.blogspot.com/...atron-mvc.html(creo que el autor es GatorV, si no es así corrijanme), MVC + ActiveRecord|Table, esto es lo mínimo que se debería utilizar hoy en día.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #7 (permalink)  
Antiguo 27/06/2011, 16:13
Avatar de Carlmycol  
Fecha de Ingreso: diciembre-2007
Ubicación: Los Teques, Venezuela
Mensajes: 240
Antigüedad: 16 años, 11 meses
Puntos: 3
Respuesta: Problema con herencia php poo

La idea era que post heredara la conexión de la base de datos de la clase blog, así el post se arregla así mismo, obteniendo sus respectivos tags en un array, la información del autor, etc.. etc..

Si tiene algun manual bueno se lo agradecería también, iré buscando info. Muchísimas gracias por la ayuda colega

EDIT: muchas gracias a ambos de nuevo ya ando investigando arto, pero es gratificante esto, muchas gracias por la ayuda con MVC me va bien dentro de poco le implemento un Registry

Saludos

Última edición por Carlmycol; 28/06/2011 a las 16:17

Etiquetas: 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 21:17.