Foros del Web » Programando para Internet » PHP »

Gestion Usuarios POO dudas

Estas en el tema de Gestion Usuarios POO dudas en el foro de PHP en Foros del Web. Hola buenas, desde hace unos días que estoy pensando en como implementar una básica gestión de usuarios con una arquitectura orientada a objetos. Mis dudas ...
  #1 (permalink)  
Antiguo 12/03/2015, 16:01
 
Fecha de Ingreso: marzo-2015
Mensajes: 1
Antigüedad: 9 años, 1 mes
Puntos: 0
Gestion Usuarios POO dudas

Hola buenas, desde hace unos días que estoy pensando en como implementar una básica gestión de usuarios con una arquitectura orientada a objetos. Mis dudas van más bien relacionadas en buenas prácticas y como deberia estructurarlo, más que la implementación en sí.

El ejemplo es muy sencillo. Básicamente el objetivo es comunicarse con la base de datos de una forma correcta y mantenible para insertar, modifcar, borrar y seleccionar usuarios. (No estoy muy familiarizado con el php, aunque la duda sea más genérica).

Lo que he pensado es en tener una classe Usuario, que sea la definición de usuario. Sólo se encarga de definir que es un usuario. Es decir:

Código:
class Usuario {

private $id;
private $username;
private $password;

//Getters & Setters
}
Ahora bien, voy a tener que hacer operaciones con la base de datos, así que he creado un DAO

Código:
class UsuarioDAO{

private $db;
private $pdo;

public function __construct()
{
 * *$db = new Database;
 * *$pdo = $db->getPDO();
}

public function createUser($user) 
{
 * *$sql = 'INSERT INTO users (`username`,`password`) VALUES(:username, :password)';
 * *$pdo->prepare($sql);
 * *$pdo->bindValue(':username', $user->getUsername(), PDO::PARAM_STR);
 * *$pdo->bindValue(':password', $user->getPassword(), PDO::PARAM_STR);
 * *return $pdo->execute(); * * * *
}
//resto de operciones con la bd
}
Y por último, la clase Databse, que es simplemente la conexión al repositorio.

Código:
class Database {

private $pdo;

public function __construct() 
{
 * *$pdo = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
}

public function getPdo() {
 * *return $this->pdo;
}
}
Entonces si quisiera insertar un usuario haría:

Código:
$userdao = new UsuarioDAO;
$user = new Usuario;
$user->setUsername('juan');
$user->setPassword('1234');
$userdao->createUser($user);
Soy consciente que no existe una solución correcta, y que existen varios diseños y patrones para solventar esto, y me gustaría saber si esta está bien implementada, si quizás alguna otra se adaptaría mejor a mis necesidades.

Perdón por hacerme pesado con un post tan largo!
Muchas gracias!

Última edición por ruxcbe; 12/03/2015 a las 16:09
  #2 (permalink)  
Antiguo 12/03/2015, 16:43
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Gestion Usuarios POO dudas

Prueba https://github.com/auraphp/Aura.Auth te puede ayudar echarle un vistazo al código
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: sql, usuarios
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 19:14.