Non proprio.
Una classe singleton e' una classe che ti impedisce in alcun modo di averne due istanze.
La tua classe MySql puo essere istanziata diverse volte con new ; pero utilizando la classe singleton che e' una mezza factory la crei una sola volta.
Per fare una classe singleton per prima cosa devi rendere privato il costruttore della classe stessa.
Cosi che se fai new ClasseSingleton lo script ti da errore e poi definire una getIstance all'interno della classe che ti restituisca l'istanza.
Cosi facendo l'unico modo per avere un istanza di MySql e' fare MySql::getInstance() e sei sicuro che sia sempre una e una sola istanza in tutto lo script.Codice PHP:class MySql {
var $host;
var $user;
var $pass;
var $data;
var $link;
private static istanzaMySql = null;
private __construct() {
}
public static function getInstance() {
if (is_null(MySql::$istanzaMySql)) {
MySql::$istanzaMySql = new MySql();
}
return MySql::$istanzaMySql;
}
.
.
.
il resto della classe
}
Andrea

Rispondi quotando