Buenas,
Estoy creando mi clase usuario y me surge una duda, a ver si me podéis ayudar
En el siguiente código muestro dos clases, las dos hacen uso de la base de datos. Y no sé cuál es la mejor forma de realizar esta conexión.
Crear dos métodos específicos uno para cada clase que se conecte a la BD?
Usar las clases constructora tal y como tengo en el ejemplo de abajo?
Debería instanciar la clase BD dentro de cada clase?
Se os ocurre una forma mejor?
Código PHP:
Ver original<?php
/**
* Clase Usuario (login, register, logout, etc)
*/
// Carga los ficheros de base de datos
require_once('BD/DB_config_reader.class.php');
require_once('BD/MyPDO.class.php');
require_once('BD/Registry.class.php');
class Usuario{
private $_nombre;
private $_usuario;
private $_password;
private $_correo;
private $_pais;
private $_birthday;
private $_sexo;
private $_userReferido;
private $_con;
public function __construct($DbConexion){
$this->_con=$DbConexion;
}
// Registrar nuevo usuario
public function newUsuario($nombre,$usuario,$password,$correo,$pais,$birthday,$sexo,$userReferido){
// Cargo las variables
$this->_nombre=$nombre;
$this->_usuario=$usuario;
$this->_password=$password;
$this->_correo=$correo;
$this->_pais=$pais;
$this->_birthday=$birthday;
$this->_sexo=$sexo;
$this->_userReferido=$userReferido;
$query = "SELECT * FROM tbl_user"; /* consulta de prueba */
$comando = $this->_con->prepare($query);
$comando->execute();
while( $datos = $comando->fetch() ) {
echo $datos[1].'<br />';
}
}
// Genera un password aleatorio
public function randomPass($length=10, $chrs = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'){
for($i = 0; $i < $length; $i++) {
}
return $pwd;
}
}
/************************************************************************/
/**
* Clase Partidos (listar partidos, etc...)
*/
class Partidos{
private $_con;
public function __construct($DbConexion){
$this->_con=$DbConexion;
}
// Listar todos las partidos de la base de datos
public function listarPartidos(){
$query = "SELECT home FROM partidos";
$comando = $this->_con->prepare($query);
$comando->execute();
while( $datos = $comando->fetch() ) {
echo $datos[0].'<br />';
}
}
}
/************************************************************************/
/* ************ EJEMPLO EN USO ******************/
$db_master = dbFactory::create('BD/bd_master.ini');
$cat= new Partidos($db_master);
$cat->listarPartidos();
$userTest = new Usuario($db_master);
//Valores de ejemplo
$nombre='Dani';
$usuario='neodani';
$password='12345';
$pais='españa';
$birthday='21-12-1985';
$sexo='H';
$userReferido='';
$userTest->newUsuario($nombre,$usuario,$password,$correo,$pais,$birthday,$sexo,$userReferido);
echo $userTest->randomPass(15);
?>
La clase de conexión a la base de datos que utilizo es la que creamos en el siguiente post
http://www.forosdelweb.com/f68/duda-...ml#post3546182
¿Qué forma es la que me recomendáis para hacer uso de la clase BD en mis otras clases que necesiten conectarse a una BD?
Muchas gracias de antemano!