Mrz 7 2010

Implementierung des Singleton-Pattern in PHP

Das Singleton-Pattern ist eines der einfachsten Pattern und lässt sich auch in PHP implementieren. Es sorgt dafür, dass von einer Singleton-Klasse jeweils nur eine Instanz erzeugt werden kann. Somit ist das Objekt zentral zugänglich, was allerdings auch als großer Nachteil ausgelegt werden kann.

Eine Beispielimplementierung kann z.B. wie folgt aussehen:

/**
 * Implementierung des Singleton Pattern
 *
 * Der Konstruktor und das Klonen sind private Methoden, können
 * somit nicht von außen aufgerufen werden.
 */
class Singleton
{
    /*
     * @var Singleton
     */
    static private $_instance = null;

    /**
     * Konstruktor
     */
    private function __constructor() {}
    private function __clone() {}

    /**
     * Liefert die einzelne Instanz
     */
    static public function getInstance()
    {
        if (is_null(self::$_instance)) {
            self::$_instance = new self;
        }
        return self::$_instance;
    }
}

Instanziierung im Programmcode

// Objekt instanziieren
$singleton = Singleton::getInstance();