From: Michael M Slusarz Date: Fri, 18 Dec 2009 19:41:06 +0000 (-0700) Subject: Make singleton/factory classname agnostic X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=8cb77bc0237c5826de4a75c9d4c01ea75b8379d7;p=horde.git Make singleton/factory classname agnostic --- diff --git a/framework/Auth/lib/Horde/Auth.php b/framework/Auth/lib/Horde/Auth.php index 2a836ec4c..4d74d96c2 100644 --- a/framework/Auth/lib/Horde/Auth.php +++ b/framework/Auth/lib/Horde/Auth.php @@ -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: diff --git a/framework/Block/lib/Horde/Block/Collection.php b/framework/Block/lib/Horde/Block/Collection.php index 6c8ec1713..4d3b7db1e 100644 --- a/framework/Block/lib/Horde/Block/Collection.php +++ b/framework/Block/lib/Horde/Block/Collection.php @@ -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]; diff --git a/framework/Browser/lib/Horde/Browser.php b/framework/Browser/lib/Horde/Browser.php index 4520c1d51..98c7ec0a9 100644 --- a/framework/Browser/lib/Horde/Browser.php +++ b/framework/Browser/lib/Horde/Browser.php @@ -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); } /** diff --git a/framework/Cli/lib/Horde/Cli.php b/framework/Cli/lib/Horde/Cli.php index 8ff8b5cf4..845e4b4c2 100644 --- a/framework/Cli/lib/Horde/Cli.php +++ b/framework/Cli/lib/Horde/Cli.php @@ -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; diff --git a/framework/Core/lib/Horde/Registry.php b/framework/Core/lib/Horde/Registry.php index 0c76f3cf9..2b6721aa8 100644 --- a/framework/Core/lib/Horde/Registry.php +++ b/framework/Core/lib/Horde/Registry.php @@ -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; diff --git a/framework/Core/lib/Horde/Script/Files.php b/framework/Core/lib/Horde/Script/Files.php index 1dedfd429..81e9ff9d2 100644 --- a/framework/Core/lib/Horde/Script/Files.php +++ b/framework/Core/lib/Horde/Script/Files.php @@ -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; diff --git a/framework/Editor/lib/Horde/Editor.php b/framework/Editor/lib/Horde/Editor.php index 1f753c000..0ef84ea14 100644 --- a/framework/Editor/lib/Horde/Editor.php +++ b/framework/Editor/lib/Horde/Editor.php @@ -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'); } diff --git a/framework/History/lib/Horde/History.php b/framework/History/lib/Horde/History.php index a871dd085..4bbf78316 100644 --- a/framework/History/lib/Horde/History.php +++ b/framework/History/lib/Horde/History.php @@ -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]; diff --git a/framework/Imap_Client/lib/Horde/Imap/Client.php b/framework/Imap_Client/lib/Horde/Imap/Client.php index 856b86927..0dd5be485 100644 --- a/framework/Imap_Client/lib/Horde/Imap/Client.php +++ b/framework/Imap_Client/lib/Horde/Imap/Client.php @@ -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); } diff --git a/framework/Imap_Client/lib/Horde/Imap/Client/Cache.php b/framework/Imap_Client/lib/Horde/Imap/Client/Cache.php index 061ab2e97..dac9f8a2a 100644 --- a/framework/Imap_Client/lib/Horde/Imap/Client/Cache.php +++ b/framework/Imap_Client/lib/Horde/Imap/Client/Cache.php @@ -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]; diff --git a/framework/Kolab_FreeBusy/lib/Horde/Kolab/FreeBusy.php b/framework/Kolab_FreeBusy/lib/Horde/Kolab/FreeBusy.php index 32ff7c5af..d85a7c591 100644 --- a/framework/Kolab_FreeBusy/lib/Horde/Kolab/FreeBusy.php +++ b/framework/Kolab_FreeBusy/lib/Horde/Kolab/FreeBusy.php @@ -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; diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php index 6e647ba5c..d67387874 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Cache.php @@ -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; diff --git a/framework/Lock/lib/Horde/Lock.php b/framework/Lock/lib/Horde/Lock.php index 3dc3c074d..7d653bd8f 100644 --- a/framework/Lock/lib/Horde/Lock.php +++ b/framework/Lock/lib/Horde/Lock.php @@ -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'); } /** diff --git a/framework/LoginTasks/lib/Horde/LoginTasks.php b/framework/LoginTasks/lib/Horde/LoginTasks.php index 8c36cb3be..ac7af01a1 100644 --- a/framework/LoginTasks/lib/Horde/LoginTasks.php +++ b/framework/LoginTasks/lib/Horde/LoginTasks.php @@ -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]; diff --git a/framework/Memcache/lib/Horde/Memcache.php b/framework/Memcache/lib/Horde/Memcache.php index e900b4174..dd29899e5 100644 --- a/framework/Memcache/lib/Horde/Memcache.php +++ b/framework/Memcache/lib/Horde/Memcache.php @@ -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; diff --git a/framework/Nls/lib/Horde/Nls/Geoip.php b/framework/Nls/lib/Horde/Nls/Geoip.php index 1f9054b03..781e97907 100644 --- a/framework/Nls/lib/Horde/Nls/Geoip.php +++ b/framework/Nls/lib/Horde/Nls/Geoip.php @@ -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; diff --git a/framework/Perms/lib/Horde/Perms.php b/framework/Perms/lib/Horde/Perms.php index f709dd1a8..63f7a576f 100644 --- a/framework/Perms/lib/Horde/Perms.php +++ b/framework/Perms/lib/Horde/Perms.php @@ -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); } /** diff --git a/framework/Prefs/lib/Horde/Prefs.php b/framework/Prefs/lib/Horde/Prefs.php index e2c9f54d2..eb3a86bcb 100644 --- a/framework/Prefs/lib/Horde/Prefs.php +++ b/framework/Prefs/lib/Horde/Prefs.php @@ -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.'); } diff --git a/framework/Prefs/lib/Horde/Prefs/Credentials.php b/framework/Prefs/lib/Horde/Prefs/Credentials.php index 02a3417c3..9c5ee2452 100644 --- a/framework/Prefs/lib/Horde/Prefs/Credentials.php +++ b/framework/Prefs/lib/Horde/Prefs/Credentials.php @@ -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; diff --git a/framework/Prefs/lib/Horde/Prefs/Identity.php b/framework/Prefs/lib/Horde/Prefs/Identity.php index 8391c66d0..18581ebbe 100644 --- a/framework/Prefs/lib/Horde/Prefs/Identity.php +++ b/framework/Prefs/lib/Horde/Prefs/Identity.php @@ -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]; diff --git a/framework/SessionHandler/lib/Horde/SessionHandler.php b/framework/SessionHandler/lib/Horde/SessionHandler.php index b12cf559b..96df3b737 100644 --- a/framework/SessionHandler/lib/Horde/SessionHandler.php +++ b/framework/SessionHandler/lib/Horde/SessionHandler.php @@ -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)) { diff --git a/framework/SessionObjects/lib/Horde/SessionObjects.php b/framework/SessionObjects/lib/Horde/SessionObjects.php index 8ceb4fba1..a8c7fcc39 100644 --- a/framework/SessionObjects/lib/Horde/SessionObjects.php +++ b/framework/SessionObjects/lib/Horde/SessionObjects.php @@ -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]; diff --git a/framework/Token/lib/Horde/Token.php b/framework/Token/lib/Horde/Token.php index 0133bfe93..d30f3c270 100644 --- a/framework/Token/lib/Horde/Token.php +++ b/framework/Token/lib/Horde/Token.php @@ -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]; diff --git a/framework/Tree/lib/Horde/Tree.php b/framework/Tree/lib/Horde/Tree.php index c063fd1cf..ab17ca99d 100644 --- a/framework/Tree/lib/Horde/Tree.php +++ b/framework/Tree/lib/Horde/Tree.php @@ -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); }