Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2010, 20:47
Avatar de dots3r
dots3r
 
Fecha de Ingreso: julio-2008
Mensajes: 106
Antigüedad: 16 años, 3 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