icingaweb2-module-director/library/Director/Web/Controller/Extension/DirectorDb.php

36 lines
833 B
PHP
Raw Normal View History

2017-06-14 14:55:11 +02:00
<?php
namespace Icinga\Module\Director\Web\Controller\Extension;
use Icinga\Exception\ConfigurationError;
2017-06-14 14:55:11 +02:00
use Icinga\Module\Director\Db;
trait DirectorDb
{
/** @var Db */
private $db;
/**
* @throws ConfigurationError
2017-06-14 14:55:11 +02:00
*
* @return Db
*/
public function db()
{
if ($this->db === null) {
$resourceName = $this->Config()->get('db', 'resource');
if ($resourceName) {
$this->db = Db::fromResourceName($resourceName);
} else {
if ($this->getRequest()->isApiRequest()) {
throw new ConfigurationError('Icinga Director is not correctly configured');
} else {
$this->redirectNow('director');
}
}
}
return $this->db;
}
}