Ho un dubbio sulla classe Singleton (... e té paréva!
)
Per una singleton definisco tale constructor:
Codice PHP:
private function __construct() {
if(is_null($istanzaClasse)) {
$istanzaClasse = new Classe;
/* Impostazione proprietà */
$this->$HTTP_HOST = $_SERVER['HTTP_HOST']; // Nome dell'host su cui risiede il server
$this->$SERVER_NAME = $_SERVER['SERVER_NAME'];
$this->$SERVER_OS = (strpos(strtoupper($_SERVER['SERVER_SOFTWARE']), "WIN32") === FALSE ? "LINUX" : "WINDOWS");
}
return $istanzaClasse;
}
la classe ha poi una miriade di proprietà statiche:
Codice PHP:
public static $HTTP_HOST = null;
public static $SERVER_OS = null;
...
...
Quando voglio sapere su che sistema operativo gira il webserver faccio
Codice PHP:
$OS = Classe::$SERVER_OS;
Non creando però mai direttamente un'istanza della classe non viene mai eseguito il costruttore.
Invece io vorrei richiamare il valore della proprietà e far sì che questo venga processato (tipo "capire che OS uso") e restituito in automatico quando richiamo la proprietà statica.
E' possibile (sempre non creando alcuna istanza ovviamente), oppure devo farmi una funzione apposita per inizializzare tutti i valori delle proprietà statiche della classe?
.... e aggiungo, nel secondo caso, la funzione può in qualche modo essere nella classe stessa?
Perché se creo una funzione di inizializzazione e uso 'this' mi dà errore (che non esiste alcuna istanza a cui fare riferimento)..
Grazie dei chiarimenti