Cita:
Iniciado por _ssx
Solo como dice maturano date el tiempo de entender el getInstance en el if esta todo lo que necesitas entender.
Código PHP:
public static function getInstance($servidor, $user, $password, $db){
if (is_null (self::$_singleton)) {
self::$_singleton = new DataBase($servidor, $user, $password, $db);
}
return self::$_singleton;
}
Sí he entendido el significado de singleton, pero mi última duda era (si queréis cojo el ejemplo de GatorV)
Código PHP:
Ver originalclass Singleton {
private static $_instance;
private $_var;
public static function getInstance($var = '')
{
if (self::$_instance == null ) {
self::$_instance = new self($var);
}
return self::$_instance;
}
private function __construct($var = '')
{
$this->_var = $var;
}
public function printVar()
{
echo $this->_var;
}
}
$obj = Singleton::getInstance("hola");
$obj->printVar(); // imprime hola
$obj2 = Singleton::getInstance();
$obj2->printVar(); // imprime hola
$obj3 = Singleton::getInstance("bye");
$obj3->printVar(); // sigue imprimiendo hola
En los 3 casos imprime hola porque fue como se llamo la primera vez. Esto es lo mismo si la primera vez te conectas a una base de datos especifica.
Mi duda era que pasa si quieres conectarte a otra base de datos diferente (o en el ej. de GatorV, que pasa si quieres te te escriba bye en lugar de hola?)
Esa era mi duda mi reflexión del último post... como dijo a la clase que lo que estoy llamando es una nueva conexión a otra base de datos. Por que me extrañaría que no se pudiera. ¿Se haría con un metodo? ¿No habría dos conexiones abiertas a dos base de datos distintas?
Salu2!