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

Duda sobre persistencia de datos

Estas en el tema de Duda sobre persistencia de datos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola: He estado intentando hacer un proyecto en PHP POO pero no estoy muy seguro de como persistir los datos, hasta el momento lo estoy ...
  #1 (permalink)  
Antiguo 12/04/2010, 20:47
Avatar de dots3r  
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 15 años, 9 meses
Puntos: 5
Duda sobre persistencia de datos

Hola:

He estado intentando hacer un proyecto en PHP POO pero no estoy muy seguro de como persistir los datos, hasta el momento lo estoy haciendo de esta forma:

Supongamos que tengo una clase usuario como esta:

Usuario.php
Código PHP:
?php
class Usuario {
   private 
$_nombre;
   private 
$_email;

   public function 
__construct($nombre$email) {
      
// asigno variables
   
}

   public 
funtion getNombre() {
      return 
$this->_nombre;
   }

  public 
funtion getEmail() {
      return 
$this->_email;

Y por otra parte tengo una otra clase que se encarga de agregar, obtener, editar etc, los datos de los usuarios desde una base de datos:

UsuarioDB.php
Código PHP:
<?php
require_once 'BaseDatos.php';
require_once 
'Usuario.php';

   public 
fucntion __construct() {
       
// conecto a la DB  haciendo uso de la clase BaseDatos.php
   


   public 
funtion addUsuario(Usuario $usuario) {
      
// agrego el usuario ala base de datos
   
}

   public 
funtion getUsuario($usuarioId) {
      
// Obtengo la info del usuario con la ID pasada por parametro desde la DB
      
$usuario = new Usuario($row['nombre'], $row['email'])
      return 
$usuario;
   }

   public function 
getTodosUsuario() {
      
// Obtengo la info de todos los usuarios y los retorno en un array de objetos tipo Usuario.
     
return $usuarios;
   }

   
// Mas metodos.....

}
Pero mi pregunta es ¿Esto es correcto? o ¿Es trabajo de la clase Usuario.php obtener los la información desde la Base de datos? porque al final tendría una clase de persistencia por tipo de dato (Usuario.php -> UsuarioDB.php, Articulo.php -> ArticuloDB.php, Encuesta.php -> EncuestaDB.php etc).

Estoy algo confundido porque estuve leyendo un artículo acerca del MVC en PHP y decía que la percistencia es parte del Modelo.

De antemano Gracias y espero puedan ayudarme =P.
Didier
  #2 (permalink)  
Antiguo 12/04/2010, 21:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda sobre persistencia de datos

De hecho, eso que expones es el modelo de datos, es decir tus archivos UsuarioDB, ArticuloDB, EncuestaDB, etc. son los modelos que son los encargados de persistir la información y de extraerla.

Saludos.
  #3 (permalink)  
Antiguo 12/04/2010, 21:23
Avatar de dots3r  
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Duda sobre persistencia de datos

Aaah ok, pero entonces esta bien lo que estoy haciendo (en dos archivos) o debería de hacerlo junto en uno solo? (Obtener información de la DB directamente en Usuario.php)

Gracias por tu respuesta.
Didier
  #4 (permalink)  
Antiguo 12/04/2010, 21:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda sobre persistencia de datos

Es mejor si separas todo, así tienes mas control en que capa puede presentarse un error, y así tienes encapsulados tus objetos en otro archivo.

Saludos.
  #5 (permalink)  
Antiguo 13/04/2010, 11:29
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Duda sobre persistencia de datos

Que tal Didier

Si piensas en una arquitectura de 3 capas, algo que debería tener todo sistema como mínimo, se habla siempre de capa de presentación, dominio y persistencia, que traducido rápidamente se podría decir que en cada capa tendrás un "representante" (clase) de cada tema, es decir:

Si tienes algo que se encargue de mostrar información de usuarios, por lo menos tendrías una clase de "presentación" para manejar los usuarios, otra de dominio (donde está la verdadera lógica del sistema) y la de persistencia, que se encarará de recuperar y guardar temas relaciones con los usuarios.

Perfectamente podrías tener UsuarioPresentacion.php, UsuarioDominio.php y UsuarioPersistencia.php (cada uno en una carpeta, lo que representará tus paquetes).

PD: MVC sería como una variación especializada de 3 capas, lo que no quiere decir ni que exista paralelismo directo entre ambas ni que uno sea mejor que lo otro, simplemente distintos y para usos distintos.

Saludos!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #6 (permalink)  
Antiguo 13/04/2010, 14:43
Avatar de dots3r  
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Duda sobre persistencia de datos

Gracias a los dos por responder, ahora tengo una idea mas clara sobre el asunto =P

Etiquetas: persistencia
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 12:30.