Buenas tardes,
Originalmente, diseñe esta clase para realizar consultas con MYSQL:
MySQL.php
Código PHP:
Ver original{
private $_config = array(); private static $_instance = NULL;
private static $_connected = FALSE;
private $_link = NULL;
private $_result = NULL;
// INSTANCIA SINGLETON DE LA CLASE
public static
function getInstance
($config = array()) {
if (self::$_instance === NULL)
{
self::$_instance = new self($config);
}
return self::$_instance;
}
// Constructor privado
private function __construct
(array $config) {
{
throw new MySQLAdapterException();
}
$this->_config = $config;
}
private function __clone(){}
private function connect()
{
// conecto solo una vez
if (self::$_connected === FALSE)
{
list($host, $user, $password, $database) = $this->_config
; self::$_connected = TRUE;
unset($host, $user, $password, $database); }
}
public function query($query)
{
//realizo una consulta, la guardo en $_result
}
}
En fin, creo una instancia singleton de la clase, pasando como parámetros los datos de conexión. Elimine metodos para hacer mas legible la clase.
Lo que estoy intando realizar ahora, es hacer una abstracción de la clase y setear los métodos abstractos que deberían implementar las clases que lo heredan.
DB_Adapter.php
Código PHP:
Ver originalabstract class DB_Adapter
{
abstract function query(){}
abstract function fetch(){}
abstract function fetchAll(){}
}
MySQL.php
Ahora bien, tengo dudas sobre como o donde poner los constructores singleton, y los métodos de conexión a la base de datos.
A la hora de instanciar una clase, por ejemplo el adaptar para MySQL o uno para PDO, como debería hacerlo?
Gracias!!