00001 <?php
00007 namespace Habari;
00008
00015 abstract class Singleton
00016 {
00017
00018 private static $instances = array();
00019
00026 protected static function instance()
00027 {
00028 $class = get_called_class();
00029 return self::getInstanceOf($class);
00030 }
00031
00042
00043
00044
00045
00046
00047 protected static function getInstanceOf( $class )
00048 {
00049 if ( ! isset( self::$instances[$class] ) ) {
00050 self::$instances[$class] = new $class();
00051 }
00052 return self::$instances[$class];
00053 }
00054
00059 protected final function __construct() {}
00060 private final function __clone() {}
00061 }
00062
00063 ?>