Salve, ho appena iniziato a programmare a oggetti e già ho bisogno di aiuto :-)

comunque, vi descrivo la situazione

io ho un file con i dati di connessione al db, chiamiamolo conf.php
<?
$host='localhost';
$dbname='salvatore';
$dbuser='root';
$dblogin='';
?>
e un file chiamato connettidb.php, dove istanzio la pdo,
<?
$col = 'mysql:host='.$host.';dbname='.$dbname;
try {
//connessione tramite creazione di un oggetto PDO
$db = new PDO($col , $dbuser, $dblogin);
}
// blocco catch per la gestione delle eccezioni
catch(PDOException $e) {
// notifica in caso di errorre
echo 'Attenzione: '.$e->getMessage();
}
?>

quindi sto scrivendo una classe: elenco, che data una tabella sul mio database,passandogli il nome della tabella, l'elenco dei campi da stampare, e il titolo dei campi da stampare mi stampa la tabella corrispondente già formattata

include 'conf.php';
class ELENCO
{
public $nometabella;
....
function __construct ($nometab,$nomicamp,$campitab)
{
$this->nometabella = $value;
....
}
public function getelenco()
{
include 'conf.php';
include 'connettidb.php';
//faccio la query sulla tabella e va tutto ok
...
}
}

e così funziona e va tutto bene. ora, il mio problema è che vorrei creare una ulteriore funzione, getcategoria, che prende la categoria del record (per esempio la categoria dell'articolo) re me li inserisce fra gli altri dati. Voglio separarla per potere, nel caso, estendere questa classe e riscrivere appunto questa funzione getcategoria, che in certi casi mi serve prenda dati da un'altra sorgente.

potrei ovviamente fare così:

include 'conf.php';
class ELENCO
{
public $nometabella;
....
function __construct ($nometab,$nomicamp,$campitab)
{
$this->nometabella = $value;
....
}
public function getcategoria()
{
include 'conf.php';
include 'connettidb.php';
//faccio la query sulla tabella e va tutto ok
...
}
public function getelenco()
{
include 'conf.php';
include 'connettidb.php';
$this->getcategoria();
//faccio la query sulla tabella e va tutto ok
...
}
}

ma è una soluzione che pur funzionando è quanto di più lontano da un sistema performante, anche perché già la prima soluzione per 7 campi da recuperare, mi da un tempo di 1,02382 secondi, ma la seconda mi da circa il doppio 2,04007 secondi. Tutto tempo preso appunto da istanziare due volte la stessa classe.


c'è sicuramente una soluzione migliore, sapreste indicarmela, anche a grandi linee?