Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/08/2008, 14:34
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años, 7 meses
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