Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

duda al usar conecciones a bases de datos

Estas en el tema de duda al usar conecciones a bases de datos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola, mi pregunta es acerca de como usaruna coneccion a base de datos desde distintas clases por ejemplo yo tengo una clase que maneja a ...
  #1 (permalink)  
Antiguo 02/08/2008, 18:35
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
De acuerdo duda al usar conecciones a bases de datos

hola, mi pregunta es acerca de como usaruna coneccion a base de datos desde distintas clases

por ejemplo

yo tengo una clase que maneja a mysql, y tengo otras clases una para el manejo de los datos del usuario y otra para el manejo de otros datos, las dos realizan actividades con mysql.

Ahora, quiero saber si es conveniente crear una coneccion y utilizarlo para todas las clases, o que el objeto de la coneccion se cree dentro de cada clase cuando esa clase es convertida en un objeto

espero ser claro (creo que no )

Saludos
  #2 (permalink)  
Antiguo 03/08/2008, 17:05
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 6 meses
Puntos: 43
Respuesta: duda al usar conecciones a bases de datos

siempre conviene usar una sola conexion, deberia investigar sobre singleton o persistencia

salu2
  #3 (permalink)  
Antiguo 04/08/2008, 13:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: duda al usar conecciones a bases de datos

destor77 menciona unos patrones de diseños que te pueden ser útiles. Puedes seguir leyendo un poco más x aca:

http://www.forosdelweb.com/f68/singleton-php-425942/
http://www.forosdelweb.com/f68/que-singleton-518732/

Saludos
  #4 (permalink)  
Antiguo 04/08/2008, 14:34
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: duda al usar conecciones a bases de datos

Lamentablemente los temas se repiten y -probablemente- las respuestas también

Algunos puntos

1) Si tus clases deben conectarse a una base de datos, deberías tener una clase para eso, y el tema de conexión debe ser un problema interno de la clase que maneje la base de datos, no debes pasarle ese problema a las demás clases ("Principio de Ocultación").

2) Si quieres asegurarte que no exista más de una conexión, deberás implementar el patrón Singleton dentro de tu clase de persistencia. No es complicado y ya existe un ejemplo en el manual oficial de PHP.

Atención: la conexión será única dentro de la instancia de una página para un usuario, no para todas las páginas y todos los usuarios (tema "stateless").

3) Lo normal es que en algún momento necesites separarlo en capas
(lo básico serían 3), aunque no sepas qué son . Deberías tener una clase que solo resuelve los problemas de un tema del sistema y otra para ese mismo tema, pero solo la persistencia.

Por ejemplo: ¿Tú sistema tiene que manejar usuarios?

Deberías tener una clase Usuarios que resuelva todas las necesidades de tu sistema cuando quiere usar los usuarios, pero, cuando la clase Usuarios debe persistir esa información, debería tratar con una clase UsuariosPersistencia que tiene internamente las sentencias SQL, pero -muy importante- no tiene el detalle de a donde se conecta, ahí entra tu clase de abstracción de base de datos.
Usuario.php -> UsuarioPersistencia.php -> BaseDeDatos.php
Todos los caminos nos llevan hacia el mismo lado: diseño en 3 capas, clase de persistencia, fachadas, etc.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 04/08/2008 a las 14:37 Razón: complementa con un link
  #5 (permalink)  
Antiguo 06/08/2008, 07:51
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: duda al usar conecciones a bases de datos

gracias por las respuestas
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 08:46.