1: <?php
2: 3: 4: 5: 6: 7: 8: 9:
10: class Horde_Core_Factory_Perms extends Horde_Core_Factory_Injector
11: {
12: 13: 14: 15: 16: 17:
18: public function create(Horde_Injector $injector)
19: {
20: $driver = $GLOBALS['conf']['perms']['driver'];
21: $params = isset($GLOBALS['conf']['perms'])
22: ? Horde::getDriverConfig('perms', $driver)
23: : array();
24:
25: if (strcasecmp($driver, 'Sql') === 0) {
26: $params['db'] = $injector->getInstance('Horde_Db_Adapter');
27: }
28:
29: $params['cache'] = $injector->getInstance('Horde_Cache');
30: $params['logger'] = $injector->getInstance('Horde_Log_Logger');
31:
32: $class = is_null($driver)
33: ? 'Horde_Perms_Null'
34: : 'Horde_Perms' . '_' . ucfirst(basename($driver));
35:
36: if (class_exists($class)) {
37: return new $class($params);
38: }
39:
40: throw new Horde_Perms_Exception('Unknown driver: ' . $driver);
41: }
42: }
43: