Allow injecting the Imap_Client into the Kolab_Storage driver.
authorGunnar Wrobel <p@rdus.de>
Wed, 24 Mar 2010 20:47:39 +0000 (21:47 +0100)
committerGunnar Wrobel <wrobel@temple.(none)>
Wed, 7 Apr 2010 14:46:23 +0000 (16:46 +0200)
framework/Core/lib/Horde/Core/Factory/KolabStorage.php
framework/Kolab_Storage/lib/Horde/Kolab/Storage.php
framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver.php
framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php

index 8369433..cdacf29 100644 (file)
@@ -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
         );
     }
index 47aa6fc..ca4f1af 100644 (file)
@@ -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'])) {
index 5b8eff7..6d48802 100644 (file)
 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.
index f7f1a0c..e774b4a 100644 (file)
@@ -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;
     }
 
     /**