Hola buena gente del Foro. Necesito preguntarles si se puede sintetizar estas 2 clases que lo único que lo diferencian son el nombre de la clase y el nombre de la tabla.
¿Cuál es la mejor forma?
Clase 1:
Código PHP:
Ver originalclass Clase1 {
//Propiedades
private static $host = 'localhost';
private static $user = 'user';
private static $pass = 'pass;
private static $dbname = 'mi_base';
private static $dbh;
private static $error;
private static $router;
public static function construct(){
// Set DSN -- Donde se conecta
$dsn = 'mysql:host
=' . self::$host . ';dbname
=' . self::$dbname; // Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create a new PDO instanace, crear el objeto de acceso a base de datos
try{
self::$dbh = new PDO($dsn, self::$user, self::$pass, $options);
//funcion para crear el menu desde la base de datos
self::setRouter();
}
// Catch any errors
catch(PDOException $e){
self::$error = $e->getMessage();
}
}
public static function setRouter() {//Le cargo a 'router' los valores de inicialización
$array = array();
$stmt = self::$dbh->prepare('SELECT * FROM tabla_1');//stmt = statement = Sentencia, consulta
$stmt->execute();
// Luego recorrer el juego de resultados:
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$array[$row['nombrePagina']] =
array(
'columna' => $row['columnaPagina'],
'contenido' => $row['contenidoPagina']
);
// Asigno la columna sólo si es necesaria
if($row['columnaPagina'] != '')
{
//$array[$row['arrayUrl_name']]['arrayUrl_column'] = $row['arrayUrl_column'];
}
}
self::$router = $array;
}
public static function getColumna($file = null ) {
self::construct();
if (array_key_exists($file, self::$router) && isset(self::$router[$file]['columna'])) {
ob_start();
if(is_file(self::$router[$file]['columna']))
require_once(self::$router[$file]['columna']);
return ob_get_clean();
}
}
public static function getContenido($file = null) {
self::construct();
if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['contenido'])) {
ob_start();
require_once(self::$router[$file]['contenido']);
return ob_get_clean();
}
}
Clase 2:
Código PHP:
Ver originalclass Clase2 {
//Propiedades
private static $host = 'localhost';
private static $user = 'user';
private static $pass = 'pass;
private static $dbname = 'mi_base';
private static $dbh;
private static $error;
private static $router;
public static function construct(){
// Set DSN -- Donde se conecta
$dsn = 'mysql:host
=' . self::$host . ';dbname
=' . self::$dbname; // Set options
$options = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
// Create a new PDO instanace, crear el objeto de acceso a base de datos
try{
self::$dbh = new PDO($dsn, self::$user, self::$pass, $options);
//funcion para crear el menu desde la base de datos
self::setRouter();
}
// Catch any errors
catch(PDOException $e){
self::$error = $e->getMessage();
}
}
public static function setRouter() {//Le cargo a 'router' los valores de inicialización
$array = array();
$stmt = self::$dbh->prepare('SELECT * FROM tabla_2');//stmt = statement = Sentencia, consulta
$stmt->execute();
// Luego recorrer el juego de resultados:
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
$array[$row['nombrePagina']] =
array(
'columna' => $row['columnaPagina'],
'contenido' => $row['contenidoPagina']
);
// Asigno la columna sólo si es necesaria
if($row['columnaPagina'] != '')
{
//$array[$row['arrayUrl_name']]['arrayUrl_column'] = $row['arrayUrl_column'];
}
}
self::$router = $array;
}
public static function getColumna($file = null ) {
self::construct();
if (array_key_exists($file, self::$router) && isset(self::$router[$file]['columna'])) {
ob_start();
if(is_file(self::$router[$file]['columna']))
require_once(self::$router[$file]['columna']);
return ob_get_clean();
}
}
public static function getContenido($file = null) {
self::construct();
if (array_key_exists($file, self::$router) && is_file(self::$router[$file]['contenido'])) {
ob_start();
require_once(self::$router[$file]['contenido']);
return ob_get_clean();
}
}