Ver Mensaje Individual
  #33 (permalink)  
Antiguo 21/04/2010, 15:18
atrianaster
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda con clase mysql, saber si se ejecuta 2 veces la consulta

Cita:
Iniciado por GatorV Ver Mensaje
@atrianaster No se que tanto conozcas de PHP5, pero uno de los mayores cambios que se hicieron es que ahora los objetos se pasan y se devuelven por referencia.
Estamos claro, uno de los mayores avances de PHP4 a PHP5 es el manejo de memoria. “Los objetos” en PHP5 se asignan por referencia y no por valor. Si a una variable le asignamos un objeto, la misma contendría una referencia al objeto y no una copia. Esto se cumple solo para las “variables de tipo object”, para asignar variables de tipo int, string, bool, float, array, resource por referencia estarías obligado a utilizar & delante de la variable a asignar.

Pero esto no sucede con funciones, métodos que devuelven objetos, en este caso seria una copia por valor y no por referencia.

Código PHP:
$db1 DataBase::getInstance('127.0.0.1','root','','forosweb');
$db2 DataBase::getInstance('127.0.0.1','root','','forosweb2'); 
En este caso $db1 almacenaría una referencia a la primera instancia de la clase DataBase y $db2 otra referencia a la segunda instancia de la clase DataBase ya que son dos bases de datos distintas.

Cita:
Iniciado por GatorV Ver Mensaje
Por lo que si ejecutas tu ejemplo anterior, cambiarias la instancia de Singleton por la otra base de datos, lo que te impediría seguir trabajando con la primera base de datos.
Si cambia la instancia del Singleton por la otra base de datos, pero la primera referencia a la primera base de datos esta almacenada en una variable como es normal, ya que se asigno por valor.

Cita:
Iniciado por GatorV Ver Mensaje
No es por ser pesado, pero es por algo que ningún framework que se considere Profesional implementa Singleton en sus clases conexión, limitan el trabajo al programador, más que ayudarlo.
No es por defender el Patrón Singleton, pero creo que utilizar Singleton o no depende del ámbito del proyecto, a lo mejor @neodani no necesita trabajar con dos bases de datos a la vez.

Espero que hayas entendido ahora. Sino te lo explico en un ejemplo.

Última edición por atrianaster; 21/04/2010 a las 16:42