Rebuild factory for Perms
authorBen Klang <ben@alkaloid.net>
Sun, 3 Oct 2010 02:29:18 +0000 (22:29 -0400)
committerBen Klang <ben@alkaloid.net>
Sun, 3 Oct 2010 02:29:49 +0000 (22:29 -0400)
framework/Core/lib/Horde/Core/Binder/Perms.php [deleted file]
framework/Core/lib/Horde/Core/Factory/Perms.php [new file with mode: 0644]
framework/Core/lib/Horde/Registry.php
framework/Core/package.xml
framework/Perms/lib/Horde/Perms.php

diff --git a/framework/Core/lib/Horde/Core/Binder/Perms.php b/framework/Core/lib/Horde/Core/Binder/Perms.php
deleted file mode 100644 (file)
index 5a7d831..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/**
- * @category Horde
- * @package  Core
- */
-class Horde_Core_Binder_Perms implements Horde_Injector_Binder
-{
-    public function create(Horde_Injector $injector)
-    {
-        $driver = $GLOBALS['conf']['perms']['driver'];
-        $params = isset($GLOBALS['conf']['perms'])
-            ? Horde::getDriverConfig('perms', $driver)
-            : array();
-
-        if (strcasecmp($driver, 'Sql') === 0) {
-            $params['db'] = $injector->getInstance('Horde_Db')->getDb('horde', 'perms');
-        }
-
-        $params['cache'] = $injector->getInstance('Horde_Cache');
-        $params['logger'] = $injector->getInstance('Horde_Log_Logger');
-
-        return Horde_Perms::factory($driver, $params);
-    }
-
-    public function equals(Horde_Injector_Binder $binder)
-    {
-        return false;
-    }
-
-}
diff --git a/framework/Core/lib/Horde/Core/Factory/Perms.php b/framework/Core/lib/Horde/Core/Factory/Perms.php
new file mode 100644 (file)
index 0000000..9379487
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Factory for creating Horde_Perms objects
+ * 
+ * Copyright 2010 Horde LLC <http://horde.org>
+ *
+ * @category Horde
+ * @package  Core
+ */
+class Horde_Core_Factory_Perms
+{
+    /**
+     * Attempts to return a concrete instance based on $driver.
+     *
+     * @return Horde_Perms  The newly created concrete instance.
+     * @throws Horde_Perms_Exception
+     */
+    public function create(Horde_Injector $injector)
+    {
+        $driver = $GLOBALS['conf']['perms']['driver'];
+        $params = isset($GLOBALS['conf']['perms'])
+            ? Horde::getDriverConfig('perms', $driver)
+            : array();
+
+        if (strcasecmp($driver, 'Sql') === 0) {
+            $params['db'] = $injector->getInstance('Horde_Db')->getDb('horde', 'perms');
+        }
+
+        $params['cache'] = $injector->getInstance('Horde_Cache');
+        $params['logger'] = $injector->getInstance('Horde_Log_Logger');
+
+        $class = is_null($driver)
+            ? 'Horde_Perms'
+            : 'Horde_Perms' . '_' . ucfirst(basename($driver));
+
+        if (class_exists($class)) {
+            return new $class($params);
+        }
+
+        throw new Horde_Perms_Exception('Unknown driver: ' . $driver);
+    }
+
+    public function equals(Horde_Injector_Binder $binder)
+    {
+        return false;
+    }
+
+}
index c6514ef..fe0d07e 100644 (file)
@@ -282,7 +282,6 @@ class Horde_Registry
             'Horde_Memcache' => 'Horde_Core_Binder_Memcache',
             'Horde_Mime_Viewer' => 'Horde_Core_Binder_MimeViewer',
             'Horde_Notification' => 'Horde_Core_Binder_Notification',
-            'Horde_Perms' => 'Horde_Core_Binder_Perms',
             'Horde_Prefs' => 'Horde_Core_Binder_Prefs',
             'Horde_Prefs_Identity' => 'Horde_Core_Binder_Identity',
             // 'Horde_Registry' - initialized below
@@ -338,6 +337,10 @@ class Horde_Registry
                 'Horde_Core_Factory_Lock',
                 'create',
             ),
+            'Horde_Perms' => array(
+                'Horde_Core_Factory_Perms',
+                'create',
+            ),
             'Horde_View' => array(
                 'Horde_Core_Factory_View',
                 'create',
index a173483..71ae8c7 100644 (file)
@@ -24,7 +24,7 @@ Application Framework.</description>
   <active>yes</active>
  </developer>
  <date>2010-10-02</date>
- <time>22:07:42</time>
+ <time>22:28:34</time>
  <version>
   <release>0.1.0</release>
   <api>0.1.0</api>
@@ -132,7 +132,6 @@ Application Framework.</description>
        <file name="Memcache.php" role="php" />
        <file name="MimeViewer.php" role="php" />
        <file name="Notification.php" role="php" />
-       <file name="Perms.php" role="php" />
        <file name="Prefs.php" role="php" />
        <file name="Secret.php" role="php" />
        <file name="SessionHandler.php" role="php" />
@@ -170,6 +169,7 @@ Application Framework.</description>
        <file name="Lock.php" role="php" />
        <file name="LoginTasks.php" role="php" />
        <file name="MimeViewer.php" role="php" />
+       <file name="Perms.php" role="php" />
        <file name="Prefs.php" role="php" />
        <file name="Request.php" role="php" />
        <file name="Share.php" role="php" />
@@ -453,7 +453,6 @@ Application Framework.</description>
    <install as="Horde/Core/Binder/Memcache.php" name="lib/Horde/Core/Binder/Memcache.php" />
    <install as="Horde/Core/Binder/MimeViewer.php" name="lib/Horde/Core/Binder/MimeViewer.php" />
    <install as="Horde/Core/Binder/Notification.php" name="lib/Horde/Core/Binder/Notification.php" />
-   <install as="Horde/Core/Binder/Perms.php" name="lib/Horde/Core/Binder/Perms.php" />
    <install as="Horde/Core/Binder/Prefs.php" name="lib/Horde/Core/Binder/Prefs.php" />
    <install as="Horde/Core/Binder/Secret.php" name="lib/Horde/Core/Binder/Secret.php" />
    <install as="Horde/Core/Binder/SessionHandler.php" name="lib/Horde/Core/Binder/SessionHandler.php" />
@@ -487,6 +486,7 @@ Application Framework.</description>
    <install as="Horde/Core/Factory/Lock.php" name="lib/Horde/Core/Factory/Lock.php" />
    <install as="Horde/Core/Factory/LoginTasks.php" name="lib/Horde/Core/Factory/LoginTasks.php" />
    <install as="Horde/Core/Factory/MimeViewer.php" name="lib/Horde/Core/Factory/MimeViewer.php" />
+   <install as="Horde/Core/Factory/Perms.php" name="lib/Horde/Core/Factory/Perms.php" />
    <install as="Horde/Core/Factory/Prefs.php" name="lib/Horde/Core/Factory/Prefs.php" />
    <install as="Horde/Core/Factory/Request.php" name="lib/Horde/Core/Factory/Request.php" />
    <install as="Horde/Core/Factory/Share.php" name="lib/Horde/Core/Factory/Share.php" />
index 550860b..4ec0e72 100644 (file)
@@ -60,31 +60,6 @@ class Horde_Perms
     static protected $_itaCache = array();
 
     /**
-     * Attempts to return a concrete instance based on $driver.
-     *
-     * @param string $driver  The type of the concrete subclass to return.
-     *                        The class name is based on the perms driver
-     *                        ($driver).  The code is dynamically included.
-     * @param array $params   A hash containing any additional configuration
-     *                        or connection parameters a subclass might need.
-     *
-     * @return Horde_Perms  The newly created concrete instance.
-     * @throws Horde_Perms_Exception
-     */
-    static public function factory($driver = null, $params = null)
-    {
-        $class = is_null($driver)
-            ? __CLASS__
-            : __CLASS__ . '_' . ucfirst(basename($driver));
-
-        if (class_exists($class)) {
-            return new $class($params);
-        }
-
-        throw new Horde_Perms_Exception('Unknown driver: ' . $driver);
-    }
-
-    /**
      * Constructor.
      *
      * @param array $params  Configuration parameters: