Ver Mensaje Individual
  #37 (permalink)  
Antiguo 01/09/2010, 23:55
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 9 meses
Puntos: 20
Respuesta: Duda con PDO y mi clase

Cita:
Iniciado por GatorV Ver Mensaje
Estas aplicando muy mal la herencia, mira este ejemplo:
Código PHP:
Ver original
  1. class Padre
  2. {
  3.           public function __construct($var1, $var2)
  4.          {
  5.                  // Esta clase acepta dos parámetros $var1 y $var2
  6.           }
  7. }
  8.  
  9. class Hija extends Padre
  10. {
  11.          public function __construct($var)
  12.          {
  13.                   // como la clase padre requiere 2 valores, le pasamos el $var de aqui y otro valor que definimos nosotros
  14.                   parent::__construct($var, 2);
  15.           }
  16. }

Si te fijas, al crear una instancia de Hija, es una instancia de Padre y le estamos pasando al constructor de padre los datos que quiere, tu tienes que hacer lo mismo una clase Db que acepte de parámetro un objeto config y que internamente llame al constructor de su clase padre con los datos que requiere.

Saludos.
Así mejor? sobreescribo el constructor de PDO y luego dentro de él llamo a la clase padre con los datos que requiere mas el nuevo parámetro?

Código PHP:
Ver original
  1. class DB extends PDO {
  2.     private $_username;
  3.     private $_password;
  4.     private $_host;
  5.     private $_db;
  6.     private $_conexion;
  7.    
  8.     public function __construct(Config $config)
  9.     {
  10.         $config_data = $config->getConfig();
  11.         $this->_username = $config_data['username'];
  12.         $this->_password = $config_data['password'];
  13.         $this->_host = $config_data['host'];
  14.         $this->_db = $config_data['db'];
  15.        
  16.         parent::__construct($dsn, $username="", $password="", $driver_options=array(), Config $config);
  17.     }
  18. }