Files
server/usr/share/psa-horde/mnemo/lib/Factory/Notepads.php
2026-01-07 20:52:11 +01:00

89 lines
2.4 KiB
PHP

<?php
/**
* The factory for the notepads handler.
*
* PHP version 5
*
* @category Horde
* @package Mnemo
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/apache
* @link http://www.horde.org/apps/mnemo
*/
/**
* The factory for the notepads handler.
*
* Copyright 2011-2017 Horde LLC (http://www.horde.org/)
*
* See the enclosed file LICENSE for license information (ASL). If you
* did not receive this file, see http://www.horde.org/licenses/apache.
*
* @category Horde
* @package Mnemo
* @author Gunnar Wrobel <wrobel@pardus.de>
* @license http://www.horde.org/licenses/apache
* @link http://www.horde.org/apps/mnemo
*/
class Mnemo_Factory_Notepads
{
/**
* Notepads drivers already created.
*
* @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 a Mnemo_Notepads instance.
*
* @return Mnemo_Notepads
*/
public function create()
{
if (!isset($GLOBALS['conf']['notepads']['driver'])) {
$driver = 'Default';
} else {
$driver = Horde_String::ucfirst($GLOBALS['conf']['notepads']['driver']);
}
if (empty($this->_instances[$driver])) {
$class = 'Mnemo_Notepads_' . $driver;
if (class_exists($class)) {
$params = array();
if (!empty($GLOBALS['conf']['share']['auto_create'])) {
$params['auto_create'] = true;
}
switch ($driver) {
case 'Default':
$params['identity'] = $this->_injector->getInstance('Horde_Core_Factory_Identity')->create();
break;
}
$this->_instances[$driver] = new $class(
$GLOBALS['mnemo_shares'],
$GLOBALS['registry']->getAuth(),
$params
);
} else {
throw new Mnemo_Exception(sprintf('Unable to load the definition of %s.', $class));
}
}
return $this->_instances[$driver];
}
}