szurubooru/src/DatabaseConnection.php

50 lines
842 B
PHP
Raw Normal View History

<?php
namespace Szurubooru;
use Szurubooru\Config;
use Szurubooru\PDOEx\PDOEx;
2014-09-14 18:41:14 +02:00
class DatabaseConnection
{
2014-09-14 16:16:15 +02:00
private $pdo;
private $config;
public function __construct(Config $config)
{
2014-09-14 16:16:15 +02:00
$this->config = $config;
}
2014-09-14 16:16:15 +02:00
public function getPDO()
{
2014-09-14 16:16:15 +02:00
if (!$this->pdo)
{
$this->createPDO();
}
return $this->pdo;
}
public function getDriver()
{
return $this->getPDO()->getAttribute(\PDO::ATTR_DRIVER_NAME);
}
2014-09-14 16:16:15 +02:00
public function close()
{
2014-09-14 16:16:15 +02:00
$this->pdo = null;
}
2014-09-14 16:16:15 +02:00
private function createPDO()
{
2014-09-14 16:16:15 +02:00
$cwd = getcwd();
if ($this->config->getDataDirectory())
chdir($this->config->getDataDirectory());
2014-11-09 14:04:44 +01:00
$this->pdo = new PDOEx(
$this->config->database->dsn,
$this->config->database->user,
$this->config->database->password);
2014-09-14 16:16:15 +02:00
$this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
chdir($cwd);
}
}