Source of packages/Combie/Struktur/Singleton.php
<?php
/**
 * Abstract Singleton
 *
 * Die Mutter aller Singleton Klassen
 *
 * @filesource
 * @author Combie <uli@combie.de>
 * @version $Id$
 * @package Combie
 * @subpackage Struktur
 */
namespace Combie\Struktur;
/**
 * Abstract Singleton
 *
 * Die Mutter aller Singleton Klassen
 * @package Combie
 * @subpackage Struktur
 */
abstract class Singleton
{
/**
 * Alle Singletons
 *
 * @var array of Singleton
 */
    private static $instances = array();
/**
 * Alle Singletons
 *
 * @return Singleton Das angeforderte Objekt
 */
    final public static function getInstance()
    {
      $class = get_called_class();
      if(empty(self::$instances[$class]))
        self::$instances[$class] = new $class;
      return self::$instances[$class];
    }
/**
 * Konstruktor
 *
 * Sichtbarkeit einschrÃÂänken
 * @return Singleton Das angeforderte Objekt
 */
    protected function __construct(){}
    
/**
 * clone
 *
 * Sichtbarkeit einschrÃÂänken und festlegen
 * diese Objekt darf niemals geclont werden
 *
 *
 * @return void Keine RÃÂückgabe
 */
    final private function __clone(){}
}
?>