From 2b8b845abe7c13ecbb266613910484310cffe8e1 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 5 Mar 2021 21:14:35 +0300 Subject: * use ORM for trivial queries * environment-based configuration * useradm.php -> update.php with new options * support for schema migrations * various fixes --- classes/db.php | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 classes/db.php (limited to 'classes/db.php') 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 @@ +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; + } + +}; + +?> -- cgit v1.2.3