Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cargar clase padre e hija sin duplicar __construct

Estas en el tema de Cargar clase padre e hija sin duplicar __construct en el foro de PHP en Foros del Web. Hola! Tengo un problema tengo mi clase padre donde tengo funciones básicas y el __construct con una conexión a mysql para arrojarme la configuración de ...
  #1 (permalink)  
Antiguo 20/06/2016, 10:23
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Cargar clase padre e hija sin duplicar __construct

Hola!

Tengo un problema tengo mi clase padre donde tengo funciones básicas y el __construct con una conexión a mysql para arrojarme la configuración de el sitio

Código PHP:
class Site {

    private 
$system = array();
    public 
$db;
    public 
$prefix;

    public function 
__construct() {

            
$this->db = new SQL(DB_HOSTDB_USERDB_PASSDB_NAME);
            
$this->prefix DB_PREFIX;


            
$NVConf $this->db->get_results("SELECT * FROM {$this->prefix}config");

               foreach (
$NVConf as $systenconfig) {
                
$this->system[$systenconfig['option']] = $systenconfig['value'];
            } 
    }

Y tengo varias clases hijas donde llamo a articulos, blog etc... y esta hace un extends hacia la clase padre para obtener la conexión a mysql y el prefix

No se si esté yo en un error sobre como lo utilizo pero necesito siempre inicializar mi clase padre para poder detectar que modulo o clase se va a usar

Código PHP:
use classesSite;
use 
classesMenus;

    
$smarty = new SmartyBC;
    
$Site   = new Site;

    if ( 
$Site->SystemURL"0" ) == "" or $Site->SystemURL"0" ) == "index.html" ) {
        include( 
ROOT_PATH "/modules/home/index.php" );
    } else {
        
//Antihack
        
$page $Function->filter$Site->SystemURL"0" ), "injection" );

        if ( 
file_existsROOT_PATH "/modules/{$page}/index.php" ) ) {

            include( 
ROOT_PATH "/modules/{$page}/index.php" );

        } else if ( 
$Site->IsPage$page ) ) {

            include( 
ROOT_PATH "/modules/posts/index.php" );

        } elseif ( 
$page == 'archives' ) {

            include( 
ROOT_PATH "/modules/posts/index.php" );

        } else {

            
$Site->ErrorPage();
        }
    } 
Uso urls amigables y con esto detecto que url es y que se le debe asignar si un modulo o un post, pero digamos al detectar que es pagina y lo mando a mi post en mi archivo index.php de modulo de post inicializo mi clase que tnego previamente un archivo controller con el cual a su vez verifica si es una pagina, categoria o post

Código PHP:
use modulespostsController;

         
$Controller = new Controller;

         
$Load =  $Controller->Load(); 
aqui mi controller.php hace un extends hacia la clase padre Site y aqui es donde se me duplica mi consulta query que esta en el __construct de la clase padre

La tenia en una funcion dentro de la clase pero esta se me duplicaba la consulta hasta 20 veces, espero puedan ayudarme
  #2 (permalink)  
Antiguo 20/06/2016, 11:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Cargar clase padre e hija sin duplicar __construct

¿Para qué duplicas el mismo tema que ya abriste antes?

Duplicado: http://www.forosdelweb.com/f18/carga...dades-1153197/

Por mucho que creas necesario abrir otro tema no tiene caso si tiene exactamente el mismo contenido.

Voy a cerrar este tema pues no hay nada que solucionar aquí, no debiste duplicar nada, sólo debiste explicar mejor y continuar en el tema previo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: clase, duplicar, hija, html, mysql, padre, select, 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 09:49.