Cita:
Iniciado por GatorV Estas aplicando muy mal la herencia, mira este ejemplo:
Código PHP:
Ver originalclass Padre
{
public function __construct($var1, $var2)
{
// Esta clase acepta dos parámetros $var1 y $var2
}
}
class Hija extends Padre
{
public function __construct($var)
{
// como la clase padre requiere 2 valores, le pasamos el $var de aqui y otro valor que definimos nosotros
parent::__construct($var, 2);
}
}
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 originalclass DB extends PDO {
private $_username;
private $_password;
private $_host;
private $_db;
private $_conexion;
public function __construct(Config $config)
{
$config_data = $config->getConfig();
$this->_username = $config_data['username'];
$this->_password = $config_data['password'];
$this->_host = $config_data['host'];
$this->_db = $config_data['db'];
parent
::__construct
($dsn, $username="", $password="", $driver_options=array(), Config
$config); }
}