summaryrefslogtreecommitdiff
path: root/classes/db.php
diff options
context:
space:
mode:
Diffstat (limited to 'classes/db.php')
-rw-r--r--classes/db.php33
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;
+ }
+
+};
+
+?>