mirror of
https://github.com/Icinga/icingadb-web.git
synced 2026-05-28 04:36:06 -04:00
Add trait for the database connection
This commit is contained in:
parent
8ed5734774
commit
026bdf4cf2
1 changed files with 43 additions and 0 deletions
43
library/Icingadb/Common/Database.php
Normal file
43
library/Icingadb/Common/Database.php
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
namespace Icinga\Module\Icingadb\Common;
|
||||
|
||||
use Icinga\Application\Config as AppConfig;
|
||||
use Icinga\Data\ResourceFactory;
|
||||
use Icinga\Exception\ConfigurationError;
|
||||
use ipl\Sql\Config as SqlConfig;
|
||||
use ipl\Sql\Connection;
|
||||
use PDO;
|
||||
|
||||
trait Database
|
||||
{
|
||||
/** @var Connection Connection to the Icinga database */
|
||||
private $db;
|
||||
|
||||
/**
|
||||
* Get the connection to the Icinga database
|
||||
*
|
||||
* @return Connection
|
||||
*
|
||||
* @throws ConfigurationError If the related resource configuration does not exist
|
||||
*/
|
||||
public function getDb()
|
||||
{
|
||||
|
||||
if ($this->db === null) {
|
||||
$config = new SqlConfig(ResourceFactory::getResourceConfig(
|
||||
AppConfig::module('icingadb')->get('icingadb', 'resource', 'icingadb')
|
||||
));
|
||||
|
||||
$config->options = [
|
||||
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
|
||||
PDO::MYSQL_ATTR_INIT_COMMAND => "SET SESSION SQL_MODE='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE"
|
||||
. ",ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"
|
||||
];
|
||||
|
||||
$this->db = new Connection($config);
|
||||
}
|
||||
|
||||
return $this->db;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue