Foros del Web » Programando para Internet » PHP »

nombre de clase desde variable

Estas en el tema de nombre de clase desde variable en el foro de PHP en Foros del Web. Hola teniendo clases static puedo llamarlas asi : miModelo::metodo sin embargo creando una clase base me gustaria que las clases que heredan de esta puedan ...
  #1 (permalink)  
Antiguo 24/03/2016, 07:03
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
nombre de clase desde variable

Hola

teniendo clases static puedo llamarlas asi :

miModelo::metodo

sin embargo creando una clase base me gustaria que las clases que heredan de esta puedan ejecutar / llamar el según su contexto el modelo pasado con argumento:

Código PHP:
class Base{
  public 
miMetodo{
   
   
miModelo::metodo;

 }
}

class 
Hija extends Base{
 
public function 
ver($modelo){

  
$modelo $modelo;
  
$modelo::metodo;

}

la idea es hacer una clase base que implemente los métodos comunes, cosa de poder utilizarlos desde las clases hijas, mas sin embargo en las clases hijas el modelo(dominio) es distinto por tal estoy buscando la forma de pasarlo como parametro o definirlo como constante de cada clase derivada y poder "consumir" la funcionalidad definida en la clase base y no repetir codigo en cada clase
  #2 (permalink)  
Antiguo 24/03/2016, 09:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: nombre de clase desde variable

¿Y exactamente cual es el problema?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 24/03/2016, 12:13
 
Fecha de Ingreso: junio-2013
Mensajes: 5
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: nombre de clase desde variable

HOLA, dada unas clases(modelos) con metodos estaticos, deseo desde otras clases llamarlas usando dichos metodos estaticos, sin embargo estas clases que hacen las llamadas, quiero que hereden de otra que implementa algunas funcionalidades base(por ejemplo listar, buscar etc)
en ese caso seria algo asi :

Código PHP:
class base {
 
 public 
$modelo;

public function 
setModelo($modelo){

$this->modelo $modelo;  // con esto setearia el modelo a utlizar en las llamadas
}

public function 
buscar(){
    return 
Modelo::get($id);
}

public function 
listar(){
  return 
Modelo::getAll();

luego en clases derivadas simplemente :

Código PHP:
class derivada1 extends base{
  
setModelo('clientes');
 
  echo 
buscar('1234');  // me busca con el modelo (cliente) el de id = 1234

  
echo listar(); // lista todos los modelos(clientes)



espero que este claro, el problema es que para utilizar
Modelo::metodo no me reconoce el nombre 'Modelo' como una clase con metodo estatico, me imagino que hay que hacer algun casting y ese es el dilema ....


Saludos
  #4 (permalink)  
Antiguo 26/03/2016, 18:44
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: nombre de clase desde variable

Si lo que vas a usar son métodos estáticos, no veo por qué pasas una instancia.Con pasar el nombre de la clase sería suficiente.
Ya que pasas una instancia, con get_class lo puedes resolver:
Código PHP:
Ver original
  1. $className=get_class($this->modelo);
  2.    $className::getAll()

Etiquetas: clase, nombre, variable
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 02:19.