Codeschnipsel - Singleton

Das Singleton-Pattern ist ein Entwurfsmuster in PHP mit man erreichen will dass von bestimmten Klassen nur ein Objekt instanziert wird.

class singleton{
        static $instance = null;

        static function getInstance(){
            if (self::$instance === null){
                self::$instance = new self();
            }
            return $self::$instance;
        }

        protected function __construct(){}
        private function __clone(){}
}

Um von nun von dieser Klass ein Objekt abzuleiten verwendet man nicht wie bisher den "new" Operator sondern $obj = singleton::getInstance() welche einem dann das Objekt zurück gibt. Wenn man einmal ein Objekt instanziert hat und man wieder singelton::getInstance() aufruft wird kein neues Objekt erstellt sondern das alte zurückgegeben da es ja in self::$instance gespeichert wurde. Die magischen Methoden __construct() und __clone() sollte man auf protected oder private stellen damit man mit dem normalen new-Operator keine neues Objekt erzeugen kann und auch nicht das Objekt dass man von singleton::getInstance() erhält clonen kann.

Das Singleton-Pattern kann man vorallem dann verwenden wenn man von bestimmten Klassen nur ein Objekt braucht, dieses dann aber in viele Klassen verwendet wird und man es nicht immer als Parameter übergeben will. Bei Datenbankklassen ist das häufig der Fall.



Impressum | Sitemap

Zum Schließen auf das Bild klicken.