Overview

Packages

  • Auth
  • Core
  • Horde
    • Imsp
  • None
  • Notification

Classes

  • Horde
  • Horde_Config
  • Horde_Config_Form
  • Horde_Core_ActiveSync_Connector
  • Horde_Core_ActiveSync_Driver
  • Horde_Core_Ajax_Application
  • Horde_Core_Ajax_Imple
  • Horde_Core_Ajax_Imple_AutoCompleter
  • Horde_Core_Ajax_Imple_Geocoder_Geonames
  • Horde_Core_Ajax_Imple_SpellChecker
  • Horde_Core_Alarm_Handler_Notify
  • Horde_Core_Auth_Application
  • Horde_Core_Auth_Composite
  • Horde_Core_Auth_Ldap
  • Horde_Core_Auth_Msad
  • Horde_Core_Auth_Shibboleth
  • Horde_Core_Auth_Signup_Base
  • Horde_Core_Auth_Signup_Form
  • Horde_Core_Auth_Signup_Null
  • Horde_Core_Auth_Signup_Sql
  • Horde_Core_Auth_Signup_SqlObject
  • Horde_Core_Autoloader_Callback_Mime
  • Horde_Core_Autoloader_Callback_Nls
  • Horde_Core_Block
  • Horde_Core_Block_Collection
  • Horde_Core_Block_Layout
  • Horde_Core_Block_Layout_Manager
  • Horde_Core_Block_Layout_View
  • Horde_Core_Block_Upgrade
  • Horde_Core_Browser
  • Horde_Core_Bundle
  • Horde_Core_Cli
  • Horde_Core_Controller_NotFound
  • Horde_Core_Controller_RequestConfiguration
  • Horde_Core_Controller_RequestMapper
  • Horde_Core_Controller_SettingsFinder
  • Horde_Core_Db_Migration
  • Horde_Core_Factory_ActiveSyncBackend
  • Horde_Core_Factory_ActiveSyncServer
  • Horde_Core_Factory_ActiveSyncState
  • Horde_Core_Factory_Ajax
  • Horde_Core_Factory_Alarm
  • Horde_Core_Factory_Auth
  • Horde_Core_Factory_AuthSignup
  • Horde_Core_Factory_Base
  • Horde_Core_Factory_BlockCollection
  • Horde_Core_Factory_Browser
  • Horde_Core_Factory_Cache
  • Horde_Core_Factory_Crypt
  • Horde_Core_Factory_Data
  • Horde_Core_Factory_Db
  • Horde_Core_Factory_DbBase
  • Horde_Core_Factory_DbPear
  • Horde_Core_Factory_Dns
  • Horde_Core_Factory_Editor
  • Horde_Core_Factory_Facebook
  • Horde_Core_Factory_Group
  • Horde_Core_Factory_History
  • Horde_Core_Factory_HttpClient
  • Horde_Core_Factory_Identity
  • Horde_Core_Factory_Image
  • Horde_Core_Factory_Imple
  • Horde_Core_Factory_Imsp
  • Horde_Core_Factory_ImspAuth
  • Horde_Core_Factory_Injector
  • Horde_Core_Factory_KolabServer
  • Horde_Core_Factory_KolabSession
  • Horde_Core_Factory_KolabStorage
  • Horde_Core_Factory_Ldap
  • Horde_Core_Factory_Lock
  • Horde_Core_Factory_Logger
  • Horde_Core_Factory_LoginTasks
  • Horde_Core_Factory_Mail
  • Horde_Core_Factory_Mapper
  • Horde_Core_Factory_Matcher
  • Horde_Core_Factory_Memcache
  • Horde_Core_Factory_MimeViewer
  • Horde_Core_Factory_Notification
  • Horde_Core_Factory_Perms
  • Horde_Core_Factory_PermsCore
  • Horde_Core_Factory_Prefs
  • Horde_Core_Factory_Request
  • Horde_Core_Factory_Secret
  • Horde_Core_Factory_SessionHandler
  • Horde_Core_Factory_Share
  • Horde_Core_Factory_ShareBase
  • Horde_Core_Factory_Template
  • Horde_Core_Factory_TextFilter
  • Horde_Core_Factory_ThemesCache
  • Horde_Core_Factory_Token
  • Horde_Core_Factory_Tree
  • Horde_Core_Factory_Twitter
  • Horde_Core_Factory_UrlShortener
  • Horde_Core_Factory_Vfs
  • Horde_Core_Factory_View
  • Horde_Core_Factory_Weather
  • Horde_Core_Group_Ldap
  • Horde_Core_Log_Logger
  • Horde_Core_LoginTasks
  • Horde_Core_LoginTasks_Backend_Horde
  • Horde_Core_LoginTasks_SystemTask_Upgrade
  • Horde_Core_Mime_Viewer_Syntaxhighlighter
  • Horde_Core_Mime_Viewer_Vcard
  • Horde_Core_Notification_Event_Status
  • Horde_Core_Notification_Handler_Decorator_Hordelog
  • Horde_Core_Notification_Storage_Session
  • Horde_Core_Perms
  • Horde_Core_Perms_Ui
  • Horde_Core_Prefs_Cache_Session
  • Horde_Core_Prefs_Identity
  • Horde_Core_Prefs_Storage_Configuration
  • Horde_Core_Prefs_Storage_Hooks
  • Horde_Core_Prefs_Storage_Upgrade
  • Horde_Core_Prefs_Ui
  • Horde_Core_Prefs_Ui_Widgets
  • Horde_Core_Share_Driver
  • Horde_Core_Share_FactoryCallback
  • Horde_Core_Sidebar
  • Horde_Core_Text_Filter_Bbcode
  • Horde_Core_Text_Filter_Emails
  • Horde_Core_Text_Filter_Emoticons
  • Horde_Core_Text_Filter_Highlightquotes
  • Horde_Core_Translation
  • Horde_Core_Tree_Html
  • Horde_Core_Tree_Javascript
  • Horde_Core_Tree_Simplehtml
  • Horde_Core_Ui_FlagImage
  • Horde_Core_Ui_JsCalendar
  • Horde_Core_Ui_Language
  • Horde_Core_Ui_Layout
  • Horde_Core_Ui_ModalFormRenderer
  • Horde_Core_Ui_Pager
  • Horde_Core_Ui_Tabs
  • Horde_Core_Ui_TagCloud
  • Horde_Core_Ui_VarRenderer
  • Horde_Core_Ui_VarRenderer_Html
  • Horde_Core_Ui_VarRenderer_TablesetHtml
  • Horde_Core_Ui_Widget
  • Horde_ErrorHandler
  • Horde_Help
  • Horde_Menu
  • Horde_Registry
  • Horde_Registry_Api
  • Horde_Registry_Application
  • Horde_Registry_Caller
  • Horde_Registry_Nlsconfig
  • Horde_Script_Files
  • Horde_Session
  • Horde_Session_Null
  • Horde_Themes
  • Horde_Themes_Cache
  • Horde_Themes_Css
  • Horde_Themes_Element
  • Horde_Themes_Image
  • Horde_Themes_Sound

Exceptions

  • Horde_Exception_HookNotSet
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * A Horde_Injector based Horde_Vfs factory.
  4:  *
  5:  * @author   Michael J. Rubinsky <mrubinsk@horde.org>
  6:  * @category Horde
  7:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
  8:  * @package  Core
  9:  */
 10: 
 11: /**
 12:  * A Horde_Injector based Horde_Vfs factory.
 13:  *
 14:  * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
 15:  *
 16:  * See the enclosed file COPYING for license information (LGPL). If you
 17:  * did not receive this file, see http://www.horde.org/licenses/lgpl21.
 18:  *
 19:  * @author   Michael J. Rubinsky <mrubinsk@horde.org>
 20:  * @category Horde
 21:  * @license  http://www.horde.org/licenses/lgpl21 LGPL 2.1
 22:  * @package  Core
 23:  */
 24: class Horde_Core_Factory_Vfs extends Horde_Core_Factory_Base
 25: {
 26:     /**
 27:      * Instances.
 28:      *
 29:      * @var array
 30:      */
 31:     private $_instances = array();
 32: 
 33:     /**
 34:      * Returns the VFS instance.
 35:      *
 36:      * @param string $scope  The vfs scope to return.
 37:      * @param array $params  Configuration parameters. If specified this
 38:      *                       configuration is used instead of the configuration
 39:      *                       from conf.php.
 40:      *
 41:      * @return Horde_Vfs  The VFS object.
 42:      */
 43:     public function create($scope = 'horde', $params = null)
 44:     {
 45:         if (empty($this->_instances[$scope])) {
 46:             if (!$params) {
 47:                 $params = $this->getConfig($scope);
 48:             }
 49: 
 50:             $class = 'Horde_Vfs_' . basename(Horde_String::ucfirst($params['type']));
 51:             if (!class_exists($class)) {
 52:                 throw new Horde_Exception('Class definition of ' . $class . ' not found.');
 53:             }
 54: 
 55:             $this->_instances[$scope] = new $class($params['params']);
 56:         }
 57: 
 58:         return $this->_instances[$scope];
 59:     }
 60: 
 61:     /**
 62:      * Returns the VFS driver parameters for the specified backend.
 63:      *
 64:      * @param string $name  The VFS system name being used.
 65:      *
 66:      * @return array  A hash with the VFS parameters; the VFS driver in 'type'
 67:      *                and the connection parameters in 'params'.
 68:      * @throws Horde_Exception
 69:      */
 70:     public function getConfig($name = 'horde')
 71:     {
 72:         global $conf;
 73: 
 74:         if ($name !== 'horde' && !isset($conf[$name]['type'])) {
 75:             throw new Horde_Exception(Horde_Core_Translation::t("You must configure a VFS backend."));
 76:         }
 77: 
 78:         $vfs = ($name == 'horde' || $conf[$name]['type'] == 'horde')
 79:             ? $conf['vfs']
 80:             : $conf[$name];
 81: 
 82:         switch (Horde_String::lower($vfs['type'])) {
 83:         case 'sql':
 84:         case 'sqlfile':
 85:         case 'musql':
 86:             if ($name == 'horde' || $conf[$name]['type'] == 'horde') {
 87:                 $vfs['params']['db'] = $this->_injector->getInstance('Horde_Db_Adapter');
 88:             } else {
 89:                 $config = Horde::getDriverConfig('vfs', 'sql');
 90:                 unset($config['umask'], $config['vfsroot']);
 91:                 $vfs['params']['db'] = $this->_injector
 92:                     ->getInstance('Horde_Core_Factory_Db')
 93:                     ->create('horde', $config);
 94:             }
 95:             break;
 96:         }
 97: 
 98:         return $vfs;
 99:     }
100: }
101: 
API documentation generated by ApiGen