Per la connessione al db, potresti anche evitare di usare una classe singleton.
Un altra soluzione è quella di far estendere la tua classe ELENCO una classe generica per il db.
Es:
Codice PHP:
class myDb{
private $host='localhost';
private $dbname='nomedb';
private $dbuser='root';
private $dblogin='';
private $prefix='sal_';
private $db;
private function connect(){
$this->col = 'mysql:host='.$this->host.';dbname='.$this->dbname;
$this->db = new PDO($this->col , $this->dbuser, $this->dblogin);
}
// Altre funzioni comuni
}
class Elenco extends myDb{
public $nometabella;
function __construct ($nometab,$nomicamp,$campitab)
{
$this->nometabella = $value;
$this->connect();
}
public function getCategoria{
// fai la query con $this->db
}
...
}
Poi ci sono altri modi più o meno efficaci. Ad esempio, in questo caso tutte le tue classi derivate da myDb sarebbero legate a PDO. Se un giorno vorresti cambiare driver oltre alla classe myDb dovresti modificare tutte le altre classi