From: Gunnar Wrobel
Date: Wed, 24 Mar 2010 20:47:39 +0000 (+0100) Subject: Allow injecting the Imap_Client into the Kolab_Storage driver. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=18f7e5bbee9b2ebaf628f06d7af46cdbc7033a8f;p=horde.git Allow injecting the Imap_Client into the Kolab_Storage driver. --- diff --git a/framework/Core/lib/Horde/Core/Factory/KolabStorage.php b/framework/Core/lib/Horde/Core/Factory/KolabStorage.php index 836943385..cdacf29b7 100644 --- a/framework/Core/lib/Horde/Core/Factory/KolabStorage.php +++ b/framework/Core/lib/Horde/Core/Factory/KolabStorage.php @@ -100,14 +100,14 @@ class Horde_Core_Factory_KolabStorage 'secure' => true ); - $master = Horde_Kolab_Storage_Driver::factory( - 'Imap', - $params + $imap = Horde_Imap_Client::factory('socket', $params); + + $master = new Horde_Kolab_Storage_Driver_Imap( + $imap ); return new Horde_Kolab_Storage( $master, - 'Imap', $params ); } diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php index 47aa6fce6..ca4f1af48 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php @@ -66,13 +66,6 @@ class Horde_Kolab_Storage protected $connections = array(); /** - * The driver type for the base connection. - * - * @var string - */ - private $_driver; - - /** * The parameters for the base connection. * * @var array @@ -123,11 +116,10 @@ class Horde_Kolab_Storage */ public function __construct( Horde_Kolab_Storage_Driver $master, - $driver, $params = array() + $params = array() ) { $this->_master = $master; - $this->_driver = $driver; $this->_params = $params; if (isset($this->_params['owner'])) { diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php index 5b8eff796..6d48802c0 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php @@ -28,25 +28,6 @@ abstract class Horde_Kolab_Storage_Driver { /** - * Factory. - * - * @param string $driver The driver type used for the storage connection. - * @param array $params Additional connection parameters. - * - * @return Horde_Kolab_Storage_List A concrete list instance. - */ - static public function &factory($driver, $params = array()) - { - $class = 'Horde_Kolab_Storage_Driver_' . ucfirst(basename($driver)); - if (class_exists($class)) { - $driver = new $class($params); - return $driver; - } - throw new Horde_Kolab_Storage_Exception( - 'Driver type definition "' . $class . '" missing.'); - } - - /** * Retrieve the namespace information for this connection. * * @return Horde_Kolab_Storage_Namespace The initialized namespace handler. diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php index f7f1a0c8b..e774b4af7 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php @@ -39,16 +39,10 @@ class Horde_Kolab_Storage_Driver_Imap extends Horde_Kolab_Storage_Driver * * @param array $params Connection parameters. */ - public function __construct($params = array()) - { - if (isset($params['driver'])) { - $driver = $params['driver']; - unset($params['driver']); - } else { - $driver = 'socket'; - } - - $this->_imap = Horde_Imap_Client::factory($driver, $params); + public function __construct( + Horde_Imap_Client_Base $imap + ) { + $this->_imap = $imap; } /**