diff options
Diffstat (limited to 'classes/db.php')
-rw-r--r-- | classes/db.php | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/classes/db.php b/classes/db.php new file mode 100644 index 0000000..cc835b7 --- /dev/null +++ b/classes/db.php @@ -0,0 +1,33 @@ +<?php +class Db { + private static $instance; + private $pdo; + + private function __construct() { + try { + $this->pdo = new PDO(self::get_dsn()); + } catch (Exception $e) { + die("Unable to initialize database driver (SQLite): $e"); + } + //$this->dbh->busyTimeout(30*1000); + $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + $this->pdo->query('PRAGMA journal_mode = wal;'); + + ORM::configure(self::get_dsn()); + ORM::configure('return_result_sets', true); + } + + public static function get_dsn() { + return Config::get(Config::DB_TYPE) . ':' . Config::get(Config::SCRATCH_DB); + } + + public static function pdo() : PDO { + if (self::$instance == null) + self::$instance = new self(); + + return self::$instance->pdo; + } + +}; + +?> |