Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Duda sobre herencia

Estas en el tema de Duda sobre herencia en el foro de PHP en Foros del Web. Hola, he creado una clase hija de mysqli con el ejemplo que esta en php.net, y funciona bien, ahora la cosa es que quiero crear ...
  #1 (permalink)  
Antiguo 16/09/2013, 09:38
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Duda sobre herencia

Hola, he creado una clase hija de mysqli con el ejemplo que esta en php.net, y funciona bien, ahora la cosa es que quiero crear una clase para mostrar los articulos que se publicaran un blog que estoy creando, el cual tomara el valor de $_GET['id'] y mostrara el titulo, el contenido, fecha y comentarios de dicho articulo, lo que no se, es que si debo crear esta clase como hija de la clase mysqli (otras mas) o como de la clase que hereda de mysqli.
Esta es la clase que esta eb php.net
Código PHP:
Ver original
  1. class foo_mysqli extends mysqli { public function __construct($host, $usuario, $contraseña, $bd) { parent::__construct($host, $usuario, $contraseña, $bd);
  2.  
  3. if (mysqli_connect_error()) { die('Error de Conexión (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } } }
Mi idea es que el constructor de mi clase, reciba el valor de $_GET y ejecute una consulta, y si no hay resultados redirecione, esto ultimo lo se hacer, pero la duda es esa, "elimino" la clase que ya tengo y la nueva la extiendo de la clase mysqli, para ejecutar una consulta en el constructor de mi clase, espero haberme explicado bien.
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #2 (permalink)  
Antiguo 16/09/2013, 09:43
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Duda sobre herencia

Perfectamente puedes crear una nueva clase artículos y heredar la conexion de foo_mysqli, no entiendo del todo cual es el problema que tienes.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 16/09/2013, 10:35
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Duda sobre herencia

Entonces me convendria extenderla de la clase mysqli, para no extender tantas clases, ahora si mi clase articulos hereda de foo_mysqli deberia clonarla para poder usar los metodos query y fetch con $this-> y no con parent::?
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #4 (permalink)  
Antiguo 16/09/2013, 11:03
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Duda sobre herencia

Cita:
Iniciado por SkAr88 Ver Mensaje
Entonces me convendria extenderla de la clase mysqli, para no extender tantas clases, ahora si mi clase articulos hereda de foo_mysqli deberia clonarla para poder usar los metodos query y fetch con $this-> y no con parent::?
En realidad el único beneficio real que te dará heredar mysqli o foo_mysqli seria para poder extenderlas, cosa que no parece ser tu objetivo.

No puedes simplemente instanciar una conexion persistente y usarla como es lo mas habitual?

Ahora bien, si quieres hacerlo de la manera que mencionas, yo no pasaría por foo_mysqli y heredaría mysqli directamente.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #5 (permalink)  
Antiguo 16/09/2013, 11:52
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Duda sobre herencia

Si creo un metodo x y quisiera hacer una consulta deberia ser asi:

Código PHP:
Ver original
  1. public function algo($id){
  2. $sql="select * from tabla where id=".$id
  3. $rs=$this->query($sql); //o uso parent::query
  4. $row=$rs->fetch_assoc();
  5. }
Como seria mas.conveniente?
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #6 (permalink)  
Antiguo 16/09/2013, 11:56
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Duda sobre herencia

Cita:
Iniciado por SkAr88 Ver Mensaje
Si creo un metodo x y quisiera hacer una consulta deberia ser asi:

Código PHP:
Ver original
  1. public function algo($id){
  2. $sql="select * from tabla where id=".$id
  3. $rs=$this->query($sql); //o uso parent::query
  4. $row=$rs->fetch_assoc();
  5. }
Como seria mas.conveniente?
A nivel general es prácticamente lo mismo, pero hacerlo $rs=$this->query($sql); te traerá la ventaja que al ser lo mas usual, tendrás mas ejemplos y mas soporte de la comunidad, yo me quedaría con esta opción.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #7 (permalink)  
Antiguo 16/09/2013, 12:17
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Duda sobre herencia

Gracias, bueno leyendo esto me quedo un poco mas claro
http://www.phpya.com.ar/poo/temarios...to=11&inicio=0
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.

Etiquetas: fecha, herencia, mysql, 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




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