Refactor Horde_Db injectors.
authorMichael M Slusarz <slusarz@curecanti.org>
Wed, 26 May 2010 17:34:06 +0000 (11:34 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Thu, 27 May 2010 16:44:52 +0000 (10:44 -0600)
Forgot that individual subsystems could potentially define a custom SQL
configuration.  Therefore, we need a Horde_Db injector with a
factory/singleton to override the base DB for these subsystems (and
reuse the base DB object if no custom config is given).

Rename Horde_Db_Adapter_Base to Horde_Db_Base and change to a shortcut
to return the base Horde DB object.

23 files changed:
content/test/Tags/TaggerTest.php
framework/Core/lib/Horde.php
framework/Core/lib/Horde/Core/Auth/Signup/Sql.php
framework/Core/lib/Horde/Core/Binder/Alarm.php
framework/Core/lib/Horde/Core/Binder/Cache.php
framework/Core/lib/Horde/Core/Binder/Db.php
framework/Core/lib/Horde/Core/Binder/DbBase.php [new file with mode: 0644]
framework/Core/lib/Horde/Core/Binder/Lock.php
framework/Core/lib/Horde/Core/Binder/Perms.php
framework/Core/lib/Horde/Core/Binder/SessionHandler.php
framework/Core/lib/Horde/Core/Binder/Token.php
framework/Core/lib/Horde/Core/Factory/Db.php [new file with mode: 0644]
framework/Core/lib/Horde/Registry.php
framework/Core/package.xml
framework/Image/tests/im.php
framework/Rdo/examples/Horde/Rdo/Clotho.php
framework/Rdo/examples/Horde/Rdo/User.php
framework/admintools/horde-sql-shell.php
horde/admin/activesync.php
horde/bin/db_migrate
horde/lib/Prefs/Ui.php
horde/rpc.php
imp/lib/Injector/Binder/Sentmail.php

index 0e89786..de3b83b 100644 (file)
@@ -21,7 +21,7 @@ class Content_Tags_TaggerTest extends PHPUnit_Framework_TestCase
         $injector = new Horde_Injector(new Horde_Injector_TopLevel());
 
         $db = new Horde_Db_Adapter_Pdo_Sqlite(array('dbname' => ':memory:'));
-        $injector->setInstance('Horde_Db_Adapter_Base', $db);
+        $injector->setInstance('Horde_Db_Base', $db);
 
         $this->tagger = $injector->getInstance('Content_Tagger');
 
index 85bf10d..3796f98 100644 (file)
@@ -787,7 +787,8 @@ HTML;
      *                        The used configuration array will be
      *                        $conf[$backend]. If an array gets passed, it will
      *                        be $conf[$key1][$key2].
-     * @param string $type    The type of driver.
+     * @param string $type    The type of driver. If null, will not merge with
+     *                        base config.
      *
      * @return array  The connection parameters.
      */
@@ -795,25 +796,28 @@ HTML;
     {
         global $conf;
 
-        $type = Horde_String::lower($type);
+        if (is_null($type)) {
+            $type = Horde_String::lower($type);
+        }
 
-        $c = null;
         if (is_array($backend)) {
             $c = Horde_Array::getElement($conf, $backend);
         } elseif (isset($conf[$backend])) {
             $c = $conf[$backend];
+        } else {
+            $c = null;
         }
 
         if (!is_null($c) && isset($c['params'])) {
             $c['params']['umask'] = $conf['umask'];
-            if (isset($conf[$type])) {
-                return array_merge($conf[$type], $c['params']);
-            } else {
-                return $c['params'];
-            }
+            return (!is_null($type) && isset($conf[$type]))
+                ? array_merge($conf[$type], $c['params'])
+                : $c['params'];
         }
 
-        return isset($conf[$type]) ? $conf[$type] : array();
+        return (!is_null($type) && isset($conf[$type]))
+            ? $conf[$type]
+            : array();
     }
 
     /**
index 63c8349..1339149 100644 (file)
@@ -49,7 +49,7 @@ class Horde_Core_Auth_Signup_Sql extends Horde_Core_Auth_Signup_Base
             serialize($signup->getData())
         );
 
-        $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base')->insert($query, $values);
+        $GLOBALS['injector']->getInstance('Horde_Db')->getOb('horde', 'signup')->insert($query, $values);
     }
 
     /**
@@ -70,7 +70,7 @@ class Horde_Core_Auth_Signup_Sql extends Horde_Core_Auth_Signup_Base
                  ' WHERE user_name = ?';
         $values = array($user);
 
-        return (bool)$GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base')->selectValue($query, $values);
+        return (bool)$GLOBALS['injector']->getInstance('Horde_Db')->getOb('horde', 'signup')->selectValue($query, $values);
     }
 
     /**
@@ -89,7 +89,7 @@ class Horde_Core_Auth_Signup_Sql extends Horde_Core_Auth_Signup_Base
                  ' WHERE user_name = ?';
         $values = array($username);
 
-        $result = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base')->selectOne($query, $values);
+        $result = $GLOBALS['injector']->getInstance('Horde_Db')->getOb('horde', 'signup')->selectOne($query, $values);
         if (empty($result)) {
             throw new Horde_Exception(sprintf(_("User \"%s\" does not exist."), $username));
         }
@@ -111,7 +111,7 @@ class Horde_Core_Auth_Signup_Sql extends Horde_Core_Auth_Signup_Base
         $query = 'SELECT * FROM ' . $this->_params['table'] .
                  ' ORDER BY signup_date';
 
-        $result = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base')->selectAll($query);
+        $result = $GLOBALS['injector']->getInstance('Horde_Db')->getOb('horde', 'signup')->selectAll($query);
         if (empty($result)) {
             return array();
         }
@@ -139,7 +139,7 @@ class Horde_Core_Auth_Signup_Sql extends Horde_Core_Auth_Signup_Base
                  ' WHERE user_name = ?';
         $values = array($username);
 
-        $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base')->delete($query, $values);
+        $GLOBALS['injector']->getInstance('Horde_Db')->getOb('horde', 'signup')->delete($query, $values);
     }
 
     /**
index dd31aeb..2f0eb16 100644 (file)
@@ -13,7 +13,7 @@ class Horde_Core_Binder_Alarm implements Horde_Injector_Binder
         $params = Horde::getDriverConfig('alarms', $driver);
 
         if (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('horde', 'alarm');
         }
 
         $params['logger'] = $injector->getInstance('Horde_Log_Logger');
index a7e3850..17a1589 100644 (file)
@@ -27,7 +27,7 @@ class Horde_Core_Binder_Cache implements Horde_Injector_Binder
         if (strcasecmp($driver, 'Memcache') === 0) {
             $params['memcache'] = $injector->getInstance('Horde_Memcache');
         } elseif (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('horde', 'cache');
         }
 
         if (!empty($GLOBALS['conf']['cache']['use_memorycache']) &&
index 2a5aba4..a581eaf 100644 (file)
@@ -5,61 +5,14 @@
  */
 class Horde_Core_Binder_Db implements Horde_Injector_Binder
 {
-    /**
-     * Handle Horde-style configuration arrays, PEAR DB/MDB2 arrays or DSNs, or
-     * PDO DSNS.
-     *
-     * @return Horde_Db_Adapter_Base
-     * @throws Horde_Exception
-     */
     public function create(Horde_Injector $injector)
     {
-        return $this->_createDb($GLOBALS['conf']['sql'], $injector);
-    }
-
-    protected function _createDb($config, $injector)
-    {
-        if (!empty($config['splitread'])) {
-            unset($config['splitread']);
-            $config['write_db'] = $this->_createDb($config, $injector);
-            $config = array_merge($config, $config['read']);
-        }
-
-        if (!isset($config['adapter'])) {
-            if ($config['phptype'] == 'oci8') {
-                $config['phptype'] = 'oci';
-            }
-            $config['adapter'] = ($config['phptype'] == 'mysqli')
-                ? 'mysqli'
-                : 'pdo_' . $config['phptype'];
-        }
-
-        if (!empty($config['hostspec'])) {
-            $config['host'] = $config['hostspec'];
-        }
-
-        $adapter = str_replace(' ', '_' , ucwords(str_replace('_', ' ', basename($config['adapter']))));
-        $class = 'Horde_Db_Adapter_' . $adapter;
-
-        if (class_exists($class)) {
-            $ob = new $class($config);
-
-            if (!isset($config['cache'])) {
-                $ob->setCache($injector->getInstance('Horde_Cache'));
-            }
-
-            if (!isset($config['logger'])) {
-                $ob->setLogger($injector->getInstance('Horde_Log_Logger'));
-            }
-
-            return $ob;
-        }
-
-        throw new Horde_Exception('Adapter class "' . $class . '" not found');
+        return new Horde_Core_Factory_Db($injector);
     }
 
     public function equals(Horde_Injector_Binder $binder)
     {
         return false;
     }
+
 }
diff --git a/framework/Core/lib/Horde/Core/Binder/DbBase.php b/framework/Core/lib/Horde/Core/Binder/DbBase.php
new file mode 100644 (file)
index 0000000..0219789
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * @category Horde
+ * @package  Core
+ */
+class Horde_Core_Binder_DbBase implements Horde_Injector_Binder
+{
+    /**
+     * @return Horde_Db_Adapter_Base
+     * @throws Horde_Exception
+     */
+    public function create(Horde_Injector $injector)
+    {
+        $db = new Horde_Core_Factory_Db($injector);
+        return $db->getOb('horde');
+    }
+
+    public function equals(Horde_Injector_Binder $binder)
+    {
+        return false;
+    }
+
+}
index d79ab58..ed82f00 100644 (file)
@@ -19,7 +19,7 @@ class Horde_Core_Binder_Lock implements Horde_Injector_Binder
         $params['logger'] = $injector->getInstance('Horde_Log_Logger');
 
         if (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('horde', 'lock');
         }
 
         return Horde_Lock::factory($driver, $params);
index 1a91d73..20ae3dc 100644 (file)
@@ -21,7 +21,7 @@ class Horde_Core_Binder_Perms implements Horde_Injector_Binder
                 array_merge(Horde::getDriverConfig('datatree', $dt_driver), array('group' => 'horde.perms'))
             );
         } elseif (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('horde', 'perms');
         }
 
         $params['cache'] = $injector->getInstance('Horde_Cache');
index fe49be1..f100558 100644 (file)
@@ -20,7 +20,7 @@ class Horde_Core_Binder_SessionHandler implements Horde_Injector_Binder
         $params = Horde::getDriverConfig('sessionhandler', $driver);
 
         if (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('horde', 'sessionhandler');
         } elseif (strcasecmp($driver, 'Memcache') === 0) {
             $params['memcache'] = $injector->getInstance('Horde_Memcache');
         }
index 9624ac8..7b8e5b5 100644 (file)
@@ -15,7 +15,7 @@ class Horde_Core_Binder_Token implements Horde_Injector_Binder
             : array();
 
         if (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('horde', 'token');
         } elseif (strcasecmp($driver, 'None') === 0) {
             $driver = 'Null';
         }
diff --git a/framework/Core/lib/Horde/Core/Factory/Db.php b/framework/Core/lib/Horde/Core/Factory/Db.php
new file mode 100644 (file)
index 0000000..3c4281d
--- /dev/null
@@ -0,0 +1,146 @@
+<?php
+/**
+ * A Horde_Injector:: based factory for creating Horde_Db_Adapter_Base
+ * objects.
+ *
+ * PHP version 5
+ *
+ * @category Horde
+ * @package  Core
+ * @author   Michael Slusarz <slusarz@horde.org>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Core
+ */
+
+/**
+ * A Horde_Injector:: based factory for creating Horde_Db_Adapter_Base
+ * objects.
+ *
+ * Copyright 2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Horde
+ * @package  Core
+ * @author   Michael Slusarz <slusarz@horde.org>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Core
+ */
+class Horde_Core_Factory_Db
+{
+    /**
+     * Instances.
+     *
+     * @var array
+     */
+    private $_instances = array();
+
+    /**
+     * The injector.
+     *
+     * @var Horde_Injector
+     */
+    private $_injector;
+
+    /**
+     * Constructor.
+     *
+     * @param Horde_Injector $injector  The injector to use.
+     */
+    public function __construct(Horde_Injector $injector)
+    {
+        $this->_injector = $injector;
+    }
+
+    /**
+     * Return the DB instance.
+     *
+     * @param string $app   The application.
+     * @param string $type  The type.
+     *
+     * @return Horde_Db_Adapter_Base  The singleton instance.
+     * @throws Horde_Exception
+     * @throws Horde_Db_Exception
+     */
+    public function getOb($app = 'horde', $type = null)
+    {
+        $sig = $app . '|' . $type;
+
+        if (isset($this->_instances[$sig])) {
+            return $this->_instances[$sig];
+        }
+
+        $pushed = ($app == 'horde')
+            ? false
+            : $GLOBALS['registry']->pushApp($app);
+
+        $config = Horde::getDriverConfig($type, 'sql');
+
+        /* Determine if we are using the base SQL config. */
+        if (isset($config['driverconfig']) &&
+            ($config['driverconfig'] == 'horde')) {
+            $this->_instances[$sig] = $this->getOb();
+            return $this->_instances[$sig];
+        }
+
+        try {
+            $this->_instances[$sig] = $this->_createDb($config);
+        } catch (Horde_Exception $e) {
+            if ($pushed) {
+                $GLOBALS['registry']->popApp();
+            }
+            throw $e;
+        }
+
+        if ($pushed) {
+            $GLOBALS['registry']->popApp();
+        }
+
+        return $this->_instances[$sig];
+    }
+
+    /**
+     */
+    protected function _createDb($config)
+    {
+        if (!empty($config['splitread'])) {
+            unset($config['splitread']);
+            $config['write_db'] = $this->_createDb($config);
+            $config = array_merge($config, $config['read']);
+        }
+
+        if (!isset($config['adapter'])) {
+            if ($config['phptype'] == 'oci8') {
+                $config['phptype'] = 'oci';
+            }
+            $config['adapter'] = ($config['phptype'] == 'mysqli')
+                ? 'mysqli'
+                : 'pdo_' . $config['phptype'];
+        }
+
+        if (!empty($config['hostspec'])) {
+            $config['host'] = $config['hostspec'];
+        }
+
+        $adapter = str_replace(' ', '_' , ucwords(str_replace('_', ' ', basename($config['adapter']))));
+        $class = 'Horde_Db_Adapter_' . $adapter;
+
+        if (class_exists($class)) {
+            $ob = new $class($config);
+
+            if (!isset($config['cache'])) {
+                $ob->setCache($this->_injector->getInstance('Horde_Cache'));
+            }
+
+            if (!isset($config['logger'])) {
+                $ob->setLogger($this->_injector->getInstance('Horde_Log_Logger'));
+            }
+
+            return $ob;
+        }
+
+        throw new Horde_Exception('Adapter class "' . $class . '" not found');
+    }
+
+}
index 879fd21..26b8d37 100644 (file)
@@ -235,7 +235,8 @@ class Horde_Registry
             'Horde_Cache' => new Horde_Core_Binder_Cache(),
             'Horde_Core_Auth_Signup' => new Horde_Core_Binder_AuthSignup(),
             'Horde_Data' => new Horde_Core_Binder_Data(),
-            'Horde_Db_Adapter_Base' => new Horde_Core_Binder_Db(),
+            'Horde_Db' => new Horde_Core_Binder_Db(),
+            'Horde_Db_Base' => new Horde_Core_Binder_DbBase(),
             'Horde_Db_Pear' => new Horde_Core_Binder_DbPear(),
             'Horde_Editor' => new Horde_Core_Binder_Editor(),
             'Horde_History' => new Horde_Core_Binder_History(),
index 55c38f9..3fa61bf 100644 (file)
@@ -83,6 +83,7 @@ Application Framework.
        <file name="Cache.php" role="php" />
        <file name="Data.php" role="php" />
        <file name="Db.php" role="php" />
+       <file name="DbBase.php" role="php" />
        <file name="DbPear.php" role="php" />
        <file name="Dns.php" role="php" />
        <file name="Editor.php" role="php" />
@@ -105,6 +106,7 @@ Application Framework.
        <file name="Share.php" role="php" />
       </dir> <!-- /lib/Horde/Core/Binder -->
       <dir name="Factory">
+       <file name="Db.php" role="php" />
        <file name="DbPear.php" role="php" />
        <file name="Data.php" role="php" />
        <file name="Editor.php" role="php" />
@@ -271,6 +273,7 @@ Application Framework.
    <install name="lib/Horde/Core/Binder/Cache.php" as="Horde/Core/Binder/Cache.php" />
    <install name="lib/Horde/Core/Binder/Data.php" as="Horde/Core/Binder/Data.php" />
    <install name="lib/Horde/Core/Binder/Db.php" as="Horde/Core/Binder/Db.php" />
+   <install name="lib/Horde/Core/Binder/DbBase.php" as="Horde/Core/Binder/DbBase.php" />
    <install name="lib/Horde/Core/Binder/DbPear.php" as="Horde/Core/Binder/DbPear.php" />
    <install name="lib/Horde/Core/Binder/Dns.php" as="Horde/Core/Binder/Dns.php" />
    <install name="lib/Horde/Core/Binder/Editor.php" as="Horde/Core/Binder/Editor.php" />
@@ -291,6 +294,7 @@ Application Framework.
    <install name="lib/Horde/Core/Binder/Vfs.php" as="Horde/Core/Binder/Vfs.php" />
    <install name="lib/Horde/Core/Binder/Facebook.php" as="Horde/Core/Binder/Facebook.php" />
    <install name="lib/Horde/Core/Binder/Share.php" as="Horde/Core/Binder/Share.php" />
+   <install name="lib/Horde/Core/Factory/Db.php" as="Horde/Core/Factory/Db.php" />
    <install name="lib/Horde/Core/Factory/DbPear.php" as="Horde/Core/Factory/DbPear.php" />
    <install name="lib/Horde/Core/Factory/Data.php" as="Horde/Core/Factory/Data.php" />
    <install name="lib/Horde/Core/Factory/Editor.php" as="Horde/Core/Factory/Editor.php" />
index 175ecad..741f378 100644 (file)
@@ -7,9 +7,9 @@
  *
  * @package Horde_Image
  */
+
 require_once dirname(__FILE__) . '/../../../horde/lib/Application.php';
 Horde_Registry::appInit('horde', array('authentication' => 'none'));
-$db = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
 
 // Putting these here so they don't interfere with timing/memory data when
 // profiling.
@@ -471,7 +471,8 @@ function logThis($effect, $time, $memory)
 
     $logger->debug("$driver, $effect, $time, $memory");
 
-//    global $driver, $logger, $db;
+//    global $driver, $logger;
+//    $db = $GLOBALS['injector']->getInstance('Horde_Db_Base');
 //    $sql = "INSERT INTO image_tests (test, driver, peak_memory, execution_time) VALUES (?, ?, ?, ?);";
 //    $db->insert($sql, array('test' => $effect,
 //                                     'driver' => $driver,
index e9f7067..f14cb88 100644 (file)
@@ -31,7 +31,7 @@ class Clotho_Mapper extends Horde_Rdo_Mapper {
 
     public function getAdapter()
     {
-        return $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+        return $GLOBALS['injector']->getInstance('Horde_Db_Base');
     }
 
 }
index 5177810..31ad596 100644 (file)
@@ -21,7 +21,7 @@ class UserMapper extends Horde_Rdo_Mapper {
 
     public function getAdapter()
     {
-        return $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+        return $GLOBALS['injector']->getInstance('Horde_Db_Base');
     }
 
 }
index 2522b66..fe72c2d 100755 (executable)
@@ -16,7 +16,7 @@ Horde_Registry::appInit('horde', array(
     'cli' => true
 ));
 
-$dbh = $injector->getInstance('Horde_Db_Adapter_Base');
+$dbh = $injector->getInstance('Horde_Db_Base');
 
 // read sql file for statements to run
 $statements = new Horde_Db_StatementParser($_SERVER['argv'][1]);
index 9a206ae..38cbb93 100644 (file)
@@ -19,10 +19,10 @@ if ($actionID) {
     $deviceID = Horde_Util::getPost('deviceID');
 
     /* Get the state machine */
-    $state_params = $GLOBALS['conf']['activesync']['state']['params'];
-    $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+    $state_params = $conf['activesync']['state']['params'];
+    $state_params['db'] = $injector->getInstance('Horde_Db_Base');
     $stateMachine = new Horde_ActiveSync_State_History($state_params);
-    $stateMachine->setLogger($GLOBALS['injector']->getInstance('Horde_Log_Logger'));
+    $stateMachine->setLogger($injector->getInstance('Horde_Log_Logger'));
 
     switch ($actionID) {
     case 'wipe':
@@ -42,9 +42,9 @@ if ($actionID) {
 }
 
 Horde::addScriptFile('activesyncadmin.js');
-if (!empty($GLOBALS['conf']['activesync']['enabled'])) {
-        $state_params = $GLOBALS['conf']['activesync']['state']['params'];
-        $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+if (!empty($conf['activesync']['enabled'])) {
+        $state_params = $conf['activesync']['state']['params'];
+        $state_params['db'] = $injector->getInstance('Horde_Db_Base');
         $stateMachine = new Horde_ActiveSync_State_History($state_params);
 } else {
     throw new Horde_Exception_PermissionDenied(_("ActiveSync not activated."));
index 1451e3d..ce31490 100755 (executable)
@@ -27,7 +27,7 @@ if (empty($args[0])) {
 }
 
 $app = $args[0];
-if (!in_array($app, $GLOBALS['registry']->listApps(array('inactive', 'hidden', 'notoolbar', 'admin', 'active')))) {
+if (!in_array($app, $registry->listApps(array('inactive', 'hidden', 'notoolbar', 'admin', 'active')))) {
     $cli->fatal("$app is not a configured Horde application");
 }
 
@@ -49,7 +49,7 @@ if (!empty($args[1])) {
 // Run
 $dir = $registry->get('fileroot', $app) . '/migration/';
 
-$db = $injector->getInstance('Horde_Db_Adapter_Base');
+$db = $injector->getInstance('Horde_Db_Base');
 $logger = new Horde_Log_Logger(new Horde_Log_Handler_Stream(STDOUT));
 $migrator = new Horde_Db_Migration_Migrator($db, $logger, array('migrationsPath' => $dir, 'schemaTableName' => $app . '_schema_info'));
 
index 3346dd3..6bc9785 100644 (file)
@@ -406,7 +406,7 @@ class Horde_Prefs_Ui
     {
         if (!empty($GLOBALS['conf']['activesync']['enabled'])) {
             $state_params = $GLOBALS['conf']['activesync']['state']['params'];
-            $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+            $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Base');
             $stateMachine = new Horde_ActiveSync_State_History($state_params);
         } else {
             return _("ActiveSync not activated.");
@@ -691,7 +691,7 @@ class Horde_Prefs_Ui
     protected function _updateActiveSyncManagement($ui)
     {
         $state_params = $GLOBALS['conf']['activesync']['state']['params'];
-        $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+        $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Base');
         $stateMachine = new Horde_ActiveSync_State_History($state_params);
         $stateMachine->setLogger($GLOBALS['injector']->getInstance('Horde_Log_Logger'));
         if ($ui->vars->wipeid) {
index 5068914..7d8e75f 100644 (file)
@@ -42,35 +42,35 @@ if ((!empty($_SERVER['CONTENT_TYPE']) &&
     Horde_Registry::appInit('horde', array('authentication' => 'none', 'nocompress' => $nocompress, 'session_control' => $session_control));
 
     /* Check if we are even enabled for AS */
-    if (!empty($GLOBALS['conf']['activesync']['enabled'])) {
+    if (!empty($conf['activesync']['enabled'])) {
         $request = new Horde_Controller_Request_Http(array('session_control' => $session_control));
-        if ($GLOBALS['conf']['activesync']['logging']['type'] == 'custom') {
+        if ($conf['activesync']['logging']['type'] == 'custom') {
             $params['logger'] = new Horde_Log_Logger(new Horde_Log_Handler_Stream(fopen($conf['activesync']['logging']['path'], 'a')));
         } else {
-            $params['logger'] = $GLOBALS['injector']->getInstance('Horde_Log_Logger');
+            $params['logger'] = $injector->getInstance('Horde_Log_Logger');
         }
-        $mailer = $GLOBALS['injector']->getInstance('Horde_Mail');
+        $mailer = $injector->getInstance('Horde_Mail');
 
         /* TODO: Probably want to bind a factory to injector for this? */
-        $params['registry'] = $GLOBALS['registry'];
+        $params['registry'] = $registry;
         $connector = new Horde_ActiveSync_Driver_Horde_Connector_Registry($params);
-        switch ($GLOBALS['conf']['activesync']['state']['driver']) {
+        switch ($conf['activesync']['state']['driver']) {
         case 'file':
-            $stateMachine = new Horde_ActiveSync_State_File($GLOBALS['conf']['activesync']['state']['params']);
+            $stateMachine = new Horde_ActiveSync_State_File($conf['activesync']['state']['params']);
             break;
         case 'history':
-            $state_params = $GLOBALS['conf']['activesync']['state']['params'];
-            $state_params['db'] = $GLOBALS['injector']->getInstance('Horde_Db_Adapter_Base');
+            $state_params = $conf['activesync']['state']['params'];
+            $state_params['db'] = $injector->getInstance('Horde_Db_Base');
             $stateMachine = new Horde_ActiveSync_State_History($state_params);
         }
-        
+
         $driver_params = array('connector' => $connector,
                                'state_basic' => $stateMachine,
                                'mail' => $mailer,
-                               'ping' => $GLOBALS['conf']['activesync']['ping']);
+                               'ping' => $conf['activesync']['ping']);
 
-        if ($params['provisioning'] = $GLOBALS['conf']['activesync']['securitypolicies']['provisioning']) {
-            $driver_params['policies'] = $GLOBALS['conf']['activesync']['securitypolicies'];
+        if ($params['provisioning'] = $conf['activesync']['securitypolicies']['provisioning']) {
+            $driver_params['policies'] = $conf['activesync']['securitypolicies'];
         }
         $params['backend'] = new Horde_ActiveSync_Driver_Horde($driver_params);
         $params['server'] = new Horde_ActiveSync($params['backend'],
@@ -139,7 +139,7 @@ if (($ra = Horde_Util::getGet('requestMissingAuthorization')) !== null) {
 
 /* Make sure we have a logger */
 if (empty($params['logger'])) {
-    $params['logger'] = $GLOBALS['injector']->getInstance('Horde_Log_Logger');
+    $params['logger'] = $injector->getInstance('Horde_Log_Logger');
 }
 
 /* Load the RPC backend based on $serverType. */
index e2a2180..460119b 100644 (file)
@@ -24,7 +24,7 @@ class IMP_Injector_Binder_Sentmail implements Horde_Injector_Binder
         $params = Horde::getDriverConfig('sentmail', $driver);
 
         if (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db_Adapter_Base');
+            $params['db'] = $injector->getInstance('Horde_Db')->getOb('imp', 'sentmail');
         } elseif (strcasecmp($driver, 'None') === 0) {
             $driver = 'Null';
         }