1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10:
11: class Horde_Core_Factory_Lock extends Horde_Core_Factory_Injector
12: {
13: 14: 15: 16: 17: 18:
19: public function create(Horde_Injector $injector)
20: {
21: $driver = empty($GLOBALS['conf']['lock']['driver'])
22: ? 'Null'
23: : $GLOBALS['conf']['lock']['driver'];
24:
25: if (strcasecmp($driver, 'None') === 0) {
26: $driver = 'Null';
27: }
28:
29: $params = Horde::getDriverConfig('lock', $driver);
30: $params['logger'] = $injector->getInstance('Horde_Log_Logger');
31:
32: if (strcasecmp($driver, 'Sql') === 0) {
33: $params['db'] = $injector->getInstance('Horde_Db_Adapter');
34: }
35:
36: $driver = Horde_String::ucfirst(basename($driver));
37: $class = 'Horde_Lock_' . $driver;
38:
39: if (class_exists($class)) {
40: return new $class($params);
41: }
42:
43: throw new Horde_Lock_Exception('Horde_Lock driver (' . $class . ') not found');
44: }
45: }
46: