Overview

Packages

  • None
  • Wicked

Classes

  • Text_Wiki_Parse_Heading2
  • Text_Wiki_Parse_Toc2
  • Text_Wiki_Render_Latex_Heading2
  • Text_Wiki_Render_Latex_Toc2
  • Text_Wiki_Render_Plain_Heading2
  • Text_Wiki_Render_Plain_Toc2
  • Text_Wiki_Render_Rst
  • Text_Wiki_Render_Rst_Blockquote
  • Text_Wiki_Render_Rst_Bold
  • Text_Wiki_Render_Rst_Code
  • Text_Wiki_Render_Rst_Deflist
  • Text_Wiki_Render_Rst_Emphasis
  • Text_Wiki_Render_Rst_Freelink
  • Text_Wiki_Render_Rst_Heading2
  • Text_Wiki_Render_Rst_Links
  • Text_Wiki_Render_Rst_List
  • Text_Wiki_Render_Rst_Newline
  • Text_Wiki_Render_Rst_Paragraph
  • Text_Wiki_Render_Rst_Raw
  • Text_Wiki_Render_Rst_Toc2
  • Text_Wiki_Render_Rst_Tt
  • Text_Wiki_Render_Rst_Url
  • Text_Wiki_Render_Xhtml_Attribute
  • Text_Wiki_Render_Xhtml_Code2
  • Text_Wiki_Render_Xhtml_Freelink2
  • Text_Wiki_Render_Xhtml_Heading2
  • Text_Wiki_Render_Xhtml_Image2
  • Text_Wiki_Render_Xhtml_Interwiki
  • Text_Wiki_Render_Xhtml_Registrylink
  • Text_Wiki_Render_Xhtml_Toc2
  • Text_Wiki_Render_Xhtml_Url
  • Text_Wiki_Render_Xhtml_Wickedblock
  • Text_Wiki_Render_Xhtml_Wikilink2
  • Wicked
  • Wicked_Api
  • Wicked_Driver
  • Wicked_Driver_Sql
  • Wicked_Exception
  • Wicked_Factory_Driver
  • Wicked_Page
  • Wicked_Page_AddPage
  • Wicked_Page_AllPages
  • Wicked_Page_AttachedFiles
  • Wicked_Page_BackLinks
  • Wicked_Page_DeletePage
  • Wicked_Page_EditPage
  • Wicked_Page_LeastPopular
  • Wicked_Page_LikePages
  • Wicked_Page_MergeOrRename
  • Wicked_Page_MostPopular
  • Wicked_Page_NewPage
  • Wicked_Page_RecentChanges
  • Wicked_Page_RevertPage
  • Wicked_Page_Search
  • Wicked_Page_StandardHistoryPage
  • Wicked_Page_StandardPage
  • Wicked_Page_SyncDiff
  • Wicked_Page_SyncPages
  • Wicked_Sync
  • Wicked_Sync_Wicked
  • Wicked_Test
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Wicked_Driver factory.
 4:  *
 5:  * Copyright 2011-2012 Horde LLC (http://www.horde.org/)
 6:  *
 7:  * See the enclosed file COPYING for license information (GPL). If you
 8:  * did not receive this file, see http://www.horde.org/licenses/gpl.
 9:  *
10:  * @author   Jan Schneider <jan@horde.org>
11:  * @category Horde
12:  * @license  http://www.horde.org/licenses/gpl GPL
13:  * @package  Wicked
14:  */
15: class Wicked_Factory_Driver extends Horde_Core_Factory_Injector
16: {
17:     /**
18:      * @var array
19:      */
20:     private $_instances = array();
21: 
22:     /**
23:      * Return an Wicked_Driver instance.
24:      *
25:      * @param Horde_Injector $injector  An injector object.
26:      *
27:      * @return Wicked_Driver  A driver instance.
28:      * @throws Wicked_Exception
29:      */
30:     public function create(Horde_Injector $injector)
31:     {
32:         $driver = Horde_String::ucfirst($GLOBALS['conf']['storage']['driver']);
33:         if (empty($driver)) {
34:             throw new Wicked_Exception('Wicked is not configured');
35:         }
36:         $signature = serialize(array($driver, $GLOBALS['conf']['storage']['params']['driverconfig']));
37:         if (empty($this->_instances[$signature])) {
38:             switch ($driver) {
39:             case 'Sql':
40:                 $params = array('db' => $this->getDb($injector));
41:                 break;
42:             }
43:             $class = 'Wicked_Driver_' . $driver;
44:             $this->_instances[$signature] = new $class($params);
45:         }
46: 
47:         return $this->_instances[$signature];
48:     }
49: 
50:     /**
51:      * Returns a Horde_Db instance for the SQL backend.
52:      *
53:      * @param Horde_Injector $injector  An injector object.
54:      *
55:      * @return Horde_Db_Adapter  A correctly configured Horde_Db_Adapter
56:      *                           instance.
57:      * @throws Wicked_Exception
58:      */
59:     public function getDb(Horde_Injector $injector)
60:     {
61:         try {
62:             if ($GLOBALS['conf']['storage']['params']['driverconfig'] == 'horde') {
63:                 return $injector->getInstance('Horde_Db_Adapter');
64:             }
65:             return $injector->getInstance('Horde_Core_Factory_Db')
66:                 ->create('wicked', 'storage');
67:         } catch (Horde_Exception $e) {
68:             throw new Wicked_Exception($e);
69:         }
70:     }
71: }
72: 
API documentation generated by ApiGen