parent
eddbbd5f5b
commit
1b94eed945
|
@ -1,40 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Icinga;
|
||||
|
||||
use \Icinga\Application\Config as IcingaConfig;
|
||||
use Icinga\Authentication\Manager as AuthManager;
|
||||
|
||||
class Backend
|
||||
{
|
||||
protected static $instances = array();
|
||||
|
||||
protected function __construct() {}
|
||||
|
||||
public static function getInstance($name = null)
|
||||
{
|
||||
if (! array_key_exists($name, self::$instances)) {
|
||||
$backends = IcingaConfig::app('backends');
|
||||
if ($name === null) {
|
||||
$name = AuthManager::getInstance()->getSession()->get('backend');
|
||||
}
|
||||
if ($name === null) {
|
||||
$backendKeys = array_keys($backends->toArray());
|
||||
$name = array_shift($backendKeys);
|
||||
}
|
||||
if (isset($backends->$name)) {
|
||||
$config = $backends->$name;
|
||||
$type = $config->type;
|
||||
$type[0] = strtoupper($type[0]);
|
||||
$class = '\\Monitoring\\Backend\\' . $type;
|
||||
self::$instances[$name] = new $class($config);
|
||||
} else {
|
||||
throw new \Exception(sprintf(
|
||||
'Got no config for backend %s',
|
||||
$name
|
||||
));
|
||||
}
|
||||
}
|
||||
return self::$instances[$name];
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue