/usr/share/horde/mnemo/lib/Factory/Driver.php is in php-horde-mnemo 4.2.12-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <?php
/**
* Horde_Injector factory to create Mnemo_Driver instances.
*
* Copyright 2011-2016 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.
*
* @author Michael J. Rubinsky <mrubinsk@horde.org>
* @package Mnemo
*/
class Mnemo_Factory_Driver
{
/**
* Instances.
*
* @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 the Mnemo_Driver:: instance.
*
* @param mixed $name The notepad to open
*
* @return Mnemo_Driver
* @throws Mnemo_Exception
*/
public function create($name = '')
{
if (!isset($this->_instances[$name])) {
$driver = $GLOBALS['conf']['storage']['driver'];
$params = Horde::getDriverConfig('storage', $driver);
$class = 'Mnemo_Driver_' . ucfirst(basename($driver));
if (!class_exists($class)) {
throw new Mnemo_Exception(sprintf('Unable to load the definition of %s.', $class));
}
switch ($class) {
case 'Mnemo_Driver_Sql':
if ($params['driverconfig'] != 'horde') {
$customParams = $params;
unset($customParams['driverconfig'], $customParams['table']);
$params['db'] = $this->_injector->getInstance('Horde_Core_Factory_Db')->create('mnemo', $customParams);
} else {
$params['db'] = $this->_injector->getInstance('Horde_Db_Adapter');
}
break;
case 'Mnemo_Driver_Kolab':
$params = array(
'storage' => $this->_injector->getInstance('Horde_Kolab_Storage')
);
}
$driver = new $class($name, $params);
$this->_instances[$name] = $driver;
}
return $this->_instances[$name];
}
}
|