Make singleton/factory classname agnostic
authorMichael M Slusarz <slusarz@curecanti.org>
Fri, 18 Dec 2009 19:41:06 +0000 (12:41 -0700)
committerMichael M Slusarz <slusarz@curecanti.org>
Fri, 18 Dec 2009 19:42:51 +0000 (12:42 -0700)
24 files changed:
framework/Auth/lib/Horde/Auth.php
framework/Block/lib/Horde/Block/Collection.php
framework/Browser/lib/Horde/Browser.php
framework/Cli/lib/Horde/Cli.php
framework/Core/lib/Horde/Registry.php
framework/Core/lib/Horde/Script/Files.php
framework/Editor/lib/Horde/Editor.php
framework/History/lib/Horde/History.php
framework/Imap_Client/lib/Horde/Imap/Client.php
framework/Imap_Client/lib/Horde/Imap/Client/Cache.php
framework/Kolab_FreeBusy/lib/Horde/Kolab/FreeBusy.php
framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php
framework/Lock/lib/Horde/Lock.php
framework/LoginTasks/lib/Horde/LoginTasks.php
framework/Memcache/lib/Horde/Memcache.php
framework/Nls/lib/Horde/Nls/Geoip.php
framework/Perms/lib/Horde/Perms.php
framework/Prefs/lib/Horde/Prefs.php
framework/Prefs/lib/Horde/Prefs/Credentials.php
framework/Prefs/lib/Horde/Prefs/Identity.php
framework/SessionHandler/lib/Horde/SessionHandler.php
framework/SessionObjects/lib/Horde/SessionObjects.php
framework/Token/lib/Horde/Token.php
framework/Tree/lib/Horde/Tree.php

index 2a836ec..4d74d96 100644 (file)
@@ -119,7 +119,7 @@ class Horde_Auth
             $params = Horde::getDriverConfig('auth', $driver);
         }
 
-        $class = 'Horde_Auth_' . $driver;
+        $class = __CLASS__ . '_' . $driver;
         if (class_exists($class)) {
             return new $class($params);
         }
@@ -148,7 +148,7 @@ class Horde_Auth
         $signature = hash('md5', serialize(array($driver, $params)));
 
         if (!isset(self::$_instances[$signature])) {
-            self::$_instances[$signature] = Horde_Auth::factory($driver, $params);
+            self::$_instances[$signature] = self::factory($driver, $params);
         }
 
         return self::$_instances[$signature];
@@ -495,7 +495,7 @@ class Horde_Auth
         } else {
             switch ($e->getCode()) {
             case Horde_Registry::PERMISSION_DENIED:
-                $params = array('app' => $app, 'reason' => Horde_Auth::REASON_MESSAGE, 'msg' => $e->getMessage());
+                $params = array('app' => $app, 'reason' => self::REASON_MESSAGE, 'msg' => $e->getMessage());
                 break;
 
             case Horde_Registry::AUTH_FAILURE:
index 6c8ec17..4d3b7db 100644 (file)
@@ -57,7 +57,7 @@ class Horde_Block_Collection
         sort($apps);
         $signature = serialize(array($type, $apps));
         if (!isset(self::$_instances[$signature])) {
-            self::$_instances[$signature] = new Horde_Block_Collection($type, $apps);
+            self::$_instances[$signature] = new self($type, $apps);
         }
 
         return self::$_instances[$signature];
index 4520c1d..98c7ec0 100644 (file)
@@ -267,7 +267,7 @@ class Horde_Browser
     public static function singleton($userAgent = null, $accept = null)
     {
         // trigger_error - warning?
-        return new Horde_Browser($userAgent, $accept);
+        return new self($userAgent, $accept);
     }
 
     /**
index 8ff8b5c..845e4b4 100644 (file)
@@ -131,7 +131,7 @@ class Horde_Cli
     static public function singleton()
     {
         if (!isset(self::$_instance)) {
-            self::$_instance = new Horde_Cli();
+            self::$_instance = new self();
         }
 
         return self::$_instance;
index 0c76f3c..2b6721a 100644 (file)
@@ -98,7 +98,7 @@ class Horde_Registry
     static public function singleton($session_flags = 0)
     {
         if (!isset(self::$_instance)) {
-            self::$_instance = new Horde_Registry($session_flags);
+            self::$_instance = new self($session_flags);
         }
 
         return self::$_instance;
index 1dedfd4..81e9ff9 100644 (file)
@@ -41,7 +41,7 @@ class Horde_Script_Files
     static public function singleton()
     {
         if (!self::$_instance) {
-            self::$_instance = new Horde_Script_Files();
+            self::$_instance = new self();
         }
 
         return self::$_instance;
index 1f753c0..0ef84ea 100644 (file)
@@ -39,7 +39,7 @@ class Horde_Editor
             return new Horde_Editor();
         }
 
-        $class = 'Horde_Editor_' . $driver;
+        $class = __CLASS__ . '_' . $driver;
         if (!class_exists($class)) {
             throw new Exception('Driver ' . $driver . ' not found');
         }
index a871dd0..4bbf783 100644 (file)
@@ -82,15 +82,15 @@ class Horde_History
         if (!isset(self::$_instances[$driver])) {
             $injector = new Horde_Injector(new Horde_Injector_TopLevel());
             $injector->bindFactory(
-                'Horde_History',
-                'Horde_History_Factory',
+                __CLASS__,
+                __CLASS__ . '_Factory',
                 'getHistory'
             );
             $config = new stdClass;
             $config->driver = $driver;
             $config->params = $params;
-            $injector->setInstance('Horde_History_Config', $config);
-            self::$_instances[$driver] = $injector->getInstance('Horde_History');
+            $injector->setInstance(__CLASS__ . '_Config', $config);
+            self::$_instances[$driver] = $injector->getInstance(__CLASS__);
         }
 
         return self::$_instances[$driver];
index 856b869..0dd5be4 100644 (file)
@@ -163,7 +163,7 @@ class Horde_Imap_Client
      */
     static public function factory($driver, $params = array())
     {
-        $class = 'Horde_Imap_Client_' . strtr(ucfirst(basename($driver)), '-', '_');
+        $class = __CLASS__ . '_' . strtr(ucfirst(basename($driver)), '-', '_');
         if (class_exists($class)) {
             return new $class($params);
         }
index 061ab2e..dac9f8a 100644 (file)
@@ -99,7 +99,7 @@ class Horde_Imap_Client_Cache
         ksort($params);
         $sig = hash('md5', serialize($params));
         if (!isset(self::$_instances[$sig])) {
-            self::$_instances[$sig] = new Horde_Imap_Client_Cache($params);
+            self::$_instances[$sig] = new self($params);
         }
 
         return self::$_instances[$sig];
index 32ff7c5..d85a7c5 100644 (file)
@@ -145,7 +145,7 @@ class Horde_Kolab_FreeBusy
     static public function singleton($params = array())
     {
         if (!isset(self::$instance)) {
-            self::$instance = new Horde_Kolab_FreeBusy($params);
+            self::$instance = new self($params);
         }
 
         return self::$instance;
index 6e647ba..d673878 100644 (file)
@@ -166,7 +166,7 @@ class Horde_Kolab_Storage_Cache
     static public function singleton()
     {
         if (!isset(self::$instance)) {
-            self::$instance = new Horde_Kolab_Storage_Cache();
+            self::$instance = new self();
         }
 
         return self::$instance;
index 3dc3c07..7d653bd 100644 (file)
@@ -166,35 +166,20 @@ class Horde_Lock
 
         $driver = Horde_String::ucfirst(basename($driver));
         if (empty($driver) || ($driver == 'None')) {
-            return new Horde_Lock();
+            return new self();
         }
 
         if (is_null($params)) {
             $params = Horde::getDriverConfig('lock', $driver);
         }
 
-        $class = 'Horde_Lock_' . $driver;
-        $include_error = '';
-        if (!class_exists($class)) {
-            $oldTrackErrors = ini_set('track_errors', 1);
-            if (!empty($app)) {
-                include $GLOBALS['registry']->get('fileroot', $app) . '/lib/Horde_Lock/' . $driver . '.php';
-            } else {
-                include 'Horde/Lock/' . $driver . '.php';
-            }
-            if (isset($php_errormsg)) {
-                $include_error = $php_errormsg;
-            }
-            ini_set('track_errors', $oldTrackErrors);
-        }
+        $class = __CLASS__ . '_' . $driver;
 
         if (class_exists($class)) {
-            $lock = new $class($params);
-        } else {
-            throw new Horde_Log_Exception('Horde_Lock Driver (' . $class . ') not found' . ($include_error ? ': ' . $include_error : '') . '.');
+            return new $class($params);
         }
 
-        return $lock;
+        throw new Horde_Log_Exception('Horde_Lock Driver (' . $class . ') not found');
     }
 
     /**
index 8c36cb3..ac7af01 100644 (file)
@@ -69,7 +69,7 @@ class Horde_LoginTasks
     static public function singleton($app)
     {
         if (empty(self::$_instances[$app])) {
-            self::$_instances[$app] = new Horde_LoginTasks($app);
+            self::$_instances[$app] = new self($app);
         }
 
         return self::$_instances[$app];
index e900b41..dd29899 100644 (file)
@@ -99,7 +99,7 @@ class Horde_Memcache
     public static function singleton()
     {
         if (!self::$_instance) {
-            self::$_instance = new Horde_Memcache();
+            self::$_instance = new self();
         }
 
         return self::$_instance;
index 1f9054b..781e979 100644 (file)
@@ -95,7 +95,7 @@ class Horde_Nls_Geoip
     static public function singleton($datafile)
     {
         if (!isset(self::$_instance)) {
-            self::$_instance = new Horde_Nls_Geoip($datafile);
+            self::$_instance = new self($datafile);
         }
 
         return self::$_instance;
index f709dd1..63f7a57 100644 (file)
@@ -71,17 +71,15 @@ class Horde_Perms
         }
 
         if (is_null($driver)) {
-            $perms = new Perms($params);
-        } else {
-            $class = 'Horde_Perms_' . ucfirst(basename($driver));
-            if (!class_exists($class)) {
-                throw new Horde_Perms_Exception('Bad permissions class name: ' . $class);
-            }
+            return new self($params);
+        }
 
-            $perms = new $class($params);
+        $class = __CLASS__ . '_' . ucfirst(basename($driver));
+        if (!class_exists($class)) {
+            throw new Horde_Perms_Exception('Bad permissions class name: ' . $class);
         }
 
-        return $perms;
+        return new $class($params);
     }
 
     /**
index e2c9f54..eb3a86b 100644 (file)
@@ -185,7 +185,7 @@ class Horde_Prefs
             $driver = 'Session';
         }
 
-        $class = 'Horde_Prefs_' . $driver;
+        $class = __CLASS__ . '_' . $driver;
         if (!class_exists($class)) {
             throw new Horde_Exception('Class definition of ' . $class . ' not found.');
         }
index 02a3417..9c5ee24 100644 (file)
@@ -68,7 +68,7 @@ class Horde_Prefs_Credentials
     static public function singleton($app)
     {
         if (is_null(self::$_instance)) {
-            self::$_instance = new Horde_Prefs_Credentials();
+            self::$_instance = new self();
         }
         self::$_instance->app = $app;
 
index 8391c66..18581eb 100644 (file)
@@ -527,7 +527,7 @@ class Horde_Prefs_Identity
 
         /* Return a base Identity object if no driver is specified. */
         if (empty($driver) || (strcasecmp($driver, 'none') == 0)) {
-            $instance = new Horde_Prefs_Identity($user);
+            $instance = new self($user);
             $instance->init();
             return $instance;
         }
@@ -570,7 +570,7 @@ class Horde_Prefs_Identity
     {
         $signature = hash('md5', serialize(array($type, $user)));
         if (!isset(self::$_instances[$signature])) {
-            self::$_instances[$signature] = Horde_Prefs_Identity::factory($type, $user);
+            self::$_instances[$signature] = self::factory($type, $user);
         }
 
         return self::$_instances[$signature];
index b12cf55..96df3b7 100644 (file)
@@ -80,7 +80,7 @@ class Horde_SessionHandler
             $params = array();
         }
 
-        $class = 'Horde_SessionHandler_' . ucfirst($driver);
+        $class = __CLASS__ . '_' . ucfirst($driver);
 
         if (class_exists($class)) {
             if (empty($params)) {
index 8ceb4fb..a8c7fcc 100644 (file)
@@ -65,7 +65,7 @@ class Horde_SessionObjects
         $sig = md5(Horde_Serialize::serialize($params, Horde_Serialize::BASIC));
 
         if (!isset(self::$_instance[$sig])) {
-            self::$_instance[$sig] = new Horde_SessionObjects($params);
+            self::$_instance[$sig] = new self($params);
         }
 
         return self::$_instance[$sig];
index 0133bfe..d30f3c2 100644 (file)
@@ -48,15 +48,16 @@ class Horde_Token
         }
 
         $driver = basename($driver);
-        $class = ($driver == 'none')
-            ? 'Horde_Token'
-            : 'Horde_Token_' . ucfirst($driver);
+        $class = __CLASS__;
+        if ($driver == 'none') {
+            $class .= '_' . ucfirst($driver);
+        }
 
         if (!class_exists($class)) {
             /* If driver class doesn't exist or the driver is not
              * available just default to the parent class, and it is
              * not necessary to warn about degraded service. */
-            $class = 'Horde_Token';
+            $class = __CLASS__;
         }
 
         return new $class($params);
@@ -90,7 +91,7 @@ class Horde_Token
         $sig = hash('md5', serialize(array($driver, $params)));
 
         if (!isset(self::$_instances[$sig])) {
-            self::$_instances[$sig] = Horde_Token::factory($driver, $params);
+            self::$_instances[$sig] = self::factory($driver, $params);
         }
 
         return self::$_instances[$sig];
index c063fd1..ab17ca9 100644 (file)
@@ -161,10 +161,10 @@ class Horde_Tree
         $id = $name . ':' . $renderer . ':' . serialize($params);
 
         if (!isset(self::$_instances[$id])) {
-            self::$_instances[$id] = Horde_Tree::factory($name, $renderer, $params);
+            self::$_instances[$id] = self::factory($name, $renderer, $params);
             if (!self::$_instances[$id]->isSupported()) {
-                $renderer = Horde_Tree::fallback($renderer);
-                return Horde_Tree::singleton($name, $renderer, $params);
+                $renderer = self::fallback($renderer);
+                return self::singleton($name, $renderer, $params);
             }
         }
 
@@ -186,7 +186,7 @@ class Horde_Tree
      */
     static public function factory($name, $renderer, $params = array())
     {
-        $class = 'Horde_Tree_' . ucfirst($renderer);
+        $class = __CLASS__ . '_' . ucfirst($renderer);
         if (class_exists($class)) {
             return new $class($name, $params);
         }