Das Entwurfsmuster Singleton in PHP. Dieses Muster kommt dann zum Einsatz wenn von einer Klasse nur eine Instanz existieren soll.
Dazu werden die Erzeugungs- und Kopieroperationen für den öffentlichen Zugriff gesperrt und eine extra Operation (getInstance()) angelegt die das Objekt anschließen instantiiert. In einer statischen Variablen ($_theInstance) wird die Referenz auf das Objekt gespeichert, bei einen weiteren Aufruf der Operation (getInstance()) wird nur die Referenz zurück gegeben.
final class Singleton {
static private $_theInstance = null;
private function __construct(){}
private function __clone(){}
static public function getInstance(){
if(is_null(self::$_theInstance))self::$_theInstance = new self();
return self::$_theInstance;
}
public function example(){
return 'Foo Bar';
}
}
// fatal error
// $foo = new Singleton();
$foo = Singleton::getInstance();
echo $foo->example();
// Foo Bar