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_HOST, DB_USER, DB_PASS, DB_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_exists( ROOT_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