Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Heredar una funcion de una clase a otra

Estas en el tema de Heredar una funcion de una clase a otra en el foro de PHP en Foros del Web. Hola, os cuento para preguntaros cómo puedo hacer lo siguiente. Tengo la class.empresas.php y todas sus funciones, listar, editar, etc. Y quiero hacer la class.categorias.php ...
  #1 (permalink)  
Antiguo 05/06/2015, 10:55
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Heredar una funcion de una clase a otra

Hola, os cuento para preguntaros cómo puedo hacer lo siguiente.


Tengo la class.empresas.php y todas sus funciones, listar, editar, etc. Y quiero hacer la class.categorias.php


Lo que pretendo es saber ¿cómo hago para llamar desde class.empresas.php a la funcion de nombreCaregoria($ID) que se encuentra en class.categorias.php ?
  #2 (permalink)  
Antiguo 05/06/2015, 11:37
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Heredar una funcion de una clase a otra

Hola Axo,

Si mal no recuerdo sería algo así:
Código PHP:
class categorias
{
    public function 
nombreCaregoria($ID)
    {
        
// cualquier cosa que haga
    
}
}

/**
 * Class empresas
 * incluir la clase categorias
 */
class empresas extends categorias
{
    public function 
otraFuncion()
    {
        
$id     1;
        
$nombre $this->nombreCaregoria($id);

        return 
$nombre;

    }

}

// segunda opción

/**
 * Class empresas
 * incluir la clase categorias
 */
class empresas
{
    public function 
otraFuncion()
    {
        
$categorías = new categorias();
        
        
$id     1;
        
$nombre $categorías->nombreCaregoria($id);

        return 
$nombre;

    }


1ª Opción como clase extendida. Accedes mediante $this->
2ª Opción como clase instanciada. Accedes mediante new...

El modo en como usarla dependerá de varios factores, pero eso ya es entrar en otra temática...

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 05/06/2015, 14:15
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Respuesta: Heredar una funcion de una clase a otra

Hola, muchas gracias más o menos sabía cómo era pero estoy bastante verde aún.

La pregunta es, la segunda opción que no es la extend ¿es recomendable usarla? Tengo una BD de unos 300.000 registro y unas 6000 categorías. ¿Cuál sería le mejor forma de uso?

Ejemplo, para un listado de registros de la Familia 1 en cada linea mosrtaré la subcategoría a la que corresponde ese listado no filtrado por subcategorías, pero si por categoría.


Nombre empresa
Subcategoria 1


Nombre empresa
Subcategoria 31


Nombre empresa
Subcategoria 354
  #4 (permalink)  
Antiguo 05/06/2015, 14:30
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Heredar una funcion de una clase a otra

Quizás esto pueda servirte de ayuda...

Instanciar o heredar
http://www.forosdelweb.com/f68/insta...eredar-893744/

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 05/06/2015, 14:35
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Respuesta: Heredar una funcion de una clase a otra

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
Quizás esto pueda servirte de ayuda...

Instanciar o heredar
http://www.forosdelweb.com/f68/insta...eredar-893744/

Saludos,
OK, gracias. La instancia sería entonces en mi caso lo más adecuado, muchas veces no voy a necesitar las categorías. Aunque en la mayoría de consultas que lance me temo que si.... pero creo que en este caso, no merece la pena extender por tema de recursos y usarla cuando la necesite ¿no?
  #6 (permalink)  
Antiguo 05/06/2015, 14:45
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Heredar una funcion de una clase a otra

Si, en este caso concreto creo que es la mejor opción.

Saludos Axo,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #7 (permalink)  
Antiguo 05/06/2015, 17:15
Axo
 
Fecha de Ingreso: abril-2003
Ubicación: Virtual
Mensajes: 953
Antigüedad: 21 años
Puntos: 7
Respuesta: Heredar una funcion de una clase a otra

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
Si, en este caso concreto creo que es la mejor opción.

Saludos Axo,
Gracias por tu ayuda.

Etiquetas: clase, funcion, heredar
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 22:44.