Overview

Packages

  • None
  • Skeleton

Classes

  • Skeleton_Api
  • Skeleton_Block_Example
  • Skeleton_Driver
  • Skeleton_Driver_Sql
  • Skeleton_Exception
  • Skeleton_Factory_Driver
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Skeleton_Driver factory.
 4:  *
 5:  * Copyright 2010-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   Your Name <you@example.com>
11:  * @category Horde
12:  * @license  http://www.horde.org/licenses/gpl GPL
13:  * @package  Skeleton
14:  */
15: class Skeleton_Factory_Driver extends Horde_Core_Factory_Injector
16: {
17:     /**
18:      * @var array
19:      */
20:     private $_instances = array();
21: 
22:     /**
23:      * Return an Skeleton_Driver instance.
24:      *
25:      * @return Skeleton_Driver
26:      */
27:     public function create(Horde_Injector $injector)
28:     {
29:         $driver = Horde_String::ucfirst($GLOBALS['conf']['storage']['driver']);
30:         $signature = serialize(array($driver, $GLOBALS['conf']['storage']['params']['driverconfig']));
31:         if (empty($this->_instances[$signature])) {
32:             switch ($driver) {
33:             case 'Sql':
34:                 try {
35:                     if ($GLOBALS['conf']['storage']['params']['driverconfig'] == 'horde') {
36:                         $db = $injector->getInstance('Horde_Db_Adapter');
37:                     } else {
38:                         $db = $injector->getInstance('Horde_Core_Factory_Db')
39:                             ->create('skeleton', 'storage');
40:                     }
41:                 } catch (Horde_Exception $e) {
42:                     throw new Skeleton_Exception($e);
43:                 }
44:                 $params = array('db' => $db);
45:                 break;
46:             case 'Ldap':
47:                 try {
48:                     $params = array('ldap' => $injector->getIntance('Horde_Core_Factory_Ldap')->create('skeleton', 'storage'));
49:                 } catch (Horde_Exception $e) {
50:                     throw new Skeleton_Exception($e);
51:                 }
52:                 break;
53:             }
54:             $class = 'Skeleton_Driver_' . $driver;
55:             $this->_instances[$signature] = new $class($params);
56:         }
57: 
58:         return $this->_instances[$signature];
59:     }
60: }
61: 
API documentation generated by ApiGen