elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Duda patrón Singleton
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda patrón Singleton  (Leído 1,219 veces)
flash-back

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Duda patrón Singleton
« en: 11 Febrero 2013, 16:37 pm »

Saludos, he estado buscando como implementar el patrón singleton a mi código a la hora de hacer conexiones a la base de datos.
He encontrado este ejemplo: http://www.cristalab.com/tutoriales/crear-una-clase-para-conectar-a-base-de-datos-con-php-c63332l/
Código:
/* Clase encargada de gestionar las conexiones a la base de datos */
Class Db{

   private $servidor='localhost';
   private $usuario='user';
   private $password='test';
   private $base_datos='testDB';
   private $link;
   private $stmt;
   private $array;

   static $_instance;

   /*La función construct es privada para evitar que el objeto pueda ser creado mediante new*/
   private function __construct(){
      $this->conectar();
   }

   /*Evitamos el clonaje del objeto. Patrón Singleton*/
   private function __clone(){ }

   /*Función encargada de crear, si es necesario, el objeto. Esta es la función que debemos llamar desde fuera de la clase para instanciar el objeto, y así, poder utilizar sus métodos*/
   public static function getInstance(){
      if (!(self::$_instance instanceof self)){
         self::$_instance=new self();
      }
      return self::$_instance;
   }

   /*Realiza la conexión a la base de datos.*/
   private function conectar(){
      $this->link=mysql_connect($this->servidor, $this->usuario, $this->password);
      mysql_select_db($this->base_datos,$this->link);
      @mysql_query("SET NAMES 'utf8'");
   }

   /*Método para ejecutar una sentencia sql*/
   public function ejecutar($sql){
      $this->stmt=mysql_query($sql,$this->link);
      return $this->stmt;
   }

   /*Método para obtener una fila de resultados de la sentencia sql*/
   public function obtener_fila($stmt,$fila){
      if ($fila==0){
         $this->array=mysql_fetch_array($stmt);
      }else{
         mysql_data_seek($stmt,$fila);
         $this->array=mysql_fetch_array($stmt);
      }
      return $this->array;
   }

   //Devuelve el último id del insert introducido
   public function lastID(){
      return mysql_insert_id($this->link);
   }

}
?>

El problema que le veo es que para hacer un query tengo que hacerlo con un método. Por ejemplo yo cuando uso mysqli uso mysqli->query(); El problema es que para esto debo crear yo manualmente un método llamado query. Pero tanto para esto como para fetch array.
¿No habría forma de seguir usando el patrón para que no me creara conexiones de más pero que me permita usar directamente la clase mysqli?

Saludos.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Singleton, static y herencia
Java
ҒrεακΠιи∂ 1 4,559 Último mensaje 30 Abril 2008, 05:58 am
por JWizard
Duda sobre el patrón MVC
Programación General
Developer Diego 2 1,308 Último mensaje 20 Junio 2014, 00:25 am
por JorgeEMX
Ayuda con patron singleton en php y array de objetos
PHP
d91 1 1,573 Último mensaje 5 Octubre 2016, 15:28 pm
por d91
[DUDA] Eliminar el patrón de un celular sin HARDRESET
Bugs y Exploits
Tino 5 8,269 Último mensaje 1 Febrero 2018, 18:39 pm
por rub'n
Patron MVC duda de implementación...
Programación General
digimikeh 6 1,460 Último mensaje 29 Mayo 2019, 19:31 pm
por Daghdha
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines