Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Heredar metodo que devuelva nombre de clase hija

Estas en el tema de Heredar metodo que devuelva nombre de clase hija en el foro de PHP en Foros del Web. Quiero hacer una funcion en la clase base que todos las clases hijas hereden y que devuelva el nombre de la clase hija. ¿Puede hacerse? ...
  #1 (permalink)  
Antiguo 15/02/2013, 10:16
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Heredar metodo que devuelva nombre de clase hija

Quiero hacer una funcion en la clase base que todos las clases hijas hereden y que devuelva el nombre de la clase hija.
¿Puede hacerse? ¿como?

Código PHP:
abstract class claseControlador
{
    public function 
getNombre(){
        return 
stristrget_class(), "Controlador"true);
    }

Código PHP:
class inicioControlador extends claseControlador{

    public function 
inicio()
    {
        echo 
$this->getNombre();
        exit();
    } 
Me saca por pantalla "Clase" cuando yo quiero que me saque "Inicio".

¿Alguna solucion por favor?

Gracias.
__________________
Es bonito y apasionante ayudarnos entre nosotros a mejorar.
Jose María Berné Lamata.
  #2 (permalink)  
Antiguo 15/02/2013, 10:23
Avatar de montealegreluis  
Fecha de Ingreso: mayo-2012
Ubicación: Puebla, Puebla
Mensajes: 64
Antigüedad: 11 años, 10 meses
Puntos: 16
Respuesta: Heredar metodo que devuelva nombre de clase hija

Puedes usar la función get_called_class

http://php.net/manual/es/function.get-called-class.php

Saludos!
__________________
RTFM: Read The Fine Manual...

http://www.comunidadphppuebla.com
https://github.com/ComPHPPuebla
  #3 (permalink)  
Antiguo 15/02/2013, 10:32
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Heredar metodo que devuelva nombre de clase hija

Cuando get_class() se utiliza dentro de una clase y no se le proporciona un parámetro, supongo que es igual que usar __CLASS__, con lo que obtienes el nombre de la clase donde se está usando.

Por otra parte, me parece razonable que no puedas heredar el nombre de la clase y, además, la herencia es de padre a hijo y no al revés.

Solución?
a) Usa un parámetro para proporcionar a get_class(), ejemplo: echo $this->getNombre($this)
b) Usa __CLASS__ en el método ->inicio

Edito: Demoños!!! tardé mucho escribiendo, y la respuesta de montealegreluis es la solución.
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 15/02/2013, 10:37
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Heredar metodo que devuelva nombre de clase hija

Aaaaa que bueno, muchas gracias!!!
__________________
Es bonito y apasionante ayudarnos entre nosotros a mejorar.
Jose María Berné Lamata.

Etiquetas: clase, heredar, hija, metodo, nombre
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 09:43.