Poi per un singleton e' necessario solo UN metodo statico: quello che restituisce un'istanza della classe, il resto dei metodi e delle proprieta' non ha senso che siano statici
Ma come faccio ad usare proprità NON statiche all'interno di un metodo statico?
...non potrei scrivere questo:
codice:
self::$instancia=new mysqli(self::$host, self::$nombre, self::$pw, self::$dbNome);
all'interno della classe ModelloPrototipo ho questi 3 metodi:
codice:
public function __construct() {
self::$instancia = Db::getDBC();
}
static function getDBC() {
return self::$instancia;
}
protected function ejecutaQuery($sql) {
try {
return self::$instancia->query($sql);
} catch (Exception $e) {
die('Connección error [' . self::$instancia->error . ']');
}
}
Potrei eliminare la classe Db ma l'ho fatto proprio per separare la "logica" di connessione al db da quello che erano i metodi per gestire le operazioni sul db stesso.
I metodi all'interno della classe ModelloPrototipo mi permettono di effettuare delle operazioni del genere all'interno dei controller:
codice:
$modello=$this->getModello("nome_tabella");
$modello->aggiorna($arrayDati,$arrayCondizioni);
.
.
.
.
$modello->nuovo($arrayDatiNuovoRecord)