elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Gestión usuarios Orientado a Objetos [dudas]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Gestión usuarios Orientado a Objetos [dudas]  (Leído 1,464 veces)
ruxcbe

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Gestión usuarios Orientado a Objetos [dudas]
« en: 12 Marzo 2015, 18:40 pm »

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ós 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!
 


En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Gestión usuarios Orientado a Objetos [dudas]
« Respuesta #1 en: 13 Marzo 2015, 17:15 pm »

Es un poco complicado la abstracion de SQL en PHP, siento que al final acabarias escribiendo muy parecido a Doctrine, por eso te recomiendo que le revises.

http://www.doctrine-project.org/


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Principiante con Php orientado a objetos
PHP
Carxl 7 3,551 Último mensaje 13 Agosto 2007, 00:32 am
por Carxl
algun. lenguaje visual o orientado a objetos
Programación General
linux1 4 3,360 Último mensaje 23 Junio 2010, 07:40 am
por @synthesize
Pasando un diseño estructurado a orientado a objetos
Java
Aikanáro Anário 0 3,195 Último mensaje 15 Octubre 2011, 18:55 pm
por Aikanáro Anário
Es verdad que mysql es orientado a objetos?
Bases de Datos
klaine 1 4,647 Último mensaje 3 Diciembre 2011, 16:54 pm
por Novlucker
¿c++ es orientado a objetos?
Programación C/C++
luis_74 2 1,761 Último mensaje 31 Mayo 2015, 17:37 pm
por Peregring-lk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines