Estoy creando mi clase usuario y me surge una duda, a ver si me podéis ayudar
![sonriente](http://static.forosdelweb.com/fdwtheme/images/smilies/smile.png)
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?
![borracho](http://static.forosdelweb.com/fdwtheme/images/smilies/borracho.png)
Muchas gracias de antemano!