Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Singleton MySQLi

Estas en el tema de Singleton MySQLi en el foro de PHP en Foros del Web. Muy buen dia foreros! Una pregunta un poco confusa para mi. Tengo un sistema que requiere múltiples accesos a la BD... en ocaciones una sola ...
  #1 (permalink)  
Antiguo 24/07/2015, 12:09
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Singleton MySQLi

Muy buen dia foreros!
Una pregunta un poco confusa para mi.

Tengo un sistema que requiere múltiples accesos a la BD... en ocaciones una sola acción puede requerir varios accesos a la BD en diferentes clases, para lo cual paso referencias de la conexión a dichas clases para evitar su duplicación, esto hace un poco confuso el diseño de la aplicación, ya que tengo que cuidar mucho no crear múltiples instancias de la clase de la BD para no duplicar conexiones. la solución para mi seria usar el patrón singleton, ya que siempre se usaría una sola instancia de la clase donde sea que la requiera. pero veo mucha polémica acerca de este patrón que me hace pensar en la seguridad ya que es considerado como si fuera una variable global, y la seguridad en mi aplicación es de mucha importancia ya que se manejan datos personales.

Ustedes que opinan o me recomiendan? y otra duda, el implementar un singleton para conectar a la BD crearía un cuello de botella cuando hay múltiples usuarios usando la aplicación al mismo tiempo? o no aplica esto porque el singleton se elimina cuando termina la ejecución de la pagina?
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).

Última edición por jvier; 24/07/2015 a las 12:30
  #2 (permalink)  
Antiguo 24/07/2015, 14:19
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Singleton MySQLi

Cita:
Tengo un sistema que requiere múltiples accesos a la BD... en ocaciones una sola acción puede requerir varios accesos a la BD en diferentes clases, para lo cual paso referencias de la conexión a dichas clases para evitar su duplicación, esto hace un poco confuso el diseño de la aplicación, ya que tengo que cuidar mucho no crear múltiples instancias de la clase de la BD para no duplicar conexiones. la solución para mi seria usar el patrón singleton, ya que siempre se usaría una sola instancia de la clase donde sea que la requiera. pero veo mucha polémica acerca de este patrón que me hace pensar en la seguridad ya que es considerado como si fuera una variable global, y la seguridad en mi aplicación es de mucha importancia ya que se manejan datos personales.
El problema con el Singleton es que lo puedes usar de forma indiscriminada sin necesidad de pasarlo como parámetro si esta en un contexto global. Pero puedes reducir el problema pasando como parámetro la instancia que te proporciona el singleton y no usar la llamada estatica a la clase. Seria lo mas sencillo si quieres algo mas tendrás que hacer uso de inyección de dependencias con inversión de control o usando Factories.
Cita:
Ustedes que opinan o me recomiendan? y otra duda, el implementar un singleton para conectar a la BD crearía un cuello de botella cuando hay múltiples usuarios usando la aplicación al mismo tiempo? o no aplica esto porque el singleton se elimina cuando termina la ejecución de la pagina?
No, no debe de haber problema el singleton solo existe hasta que acaba la ejecución del script
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 24/07/2015, 15:09
Avatar de jvier  
Fecha de Ingreso: septiembre-2014
Mensajes: 106
Antigüedad: 9 años, 7 meses
Puntos: 6
Respuesta: Singleton MySQLi

Gracias por tu opinion!
__________________
Me gusta desarrollar aplicaciones para Android, y me considero bueno para el PHP, Javascript y el AS3.

AH! y agradezco puntitos jeje (si mis respuestas te ayudan).

Etiquetas: mysql, singleton
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:16.