summaryrefslogtreecommitdiff
path: root/models/base.php
diff options
context:
space:
mode:
Diffstat (limited to 'models/base.php')
-rw-r--r--models/base.php48
1 files changed, 48 insertions, 0 deletions
diff --git a/models/base.php b/models/base.php
new file mode 100644
index 00000000..85a8f252
--- /dev/null
+++ b/models/base.php
@@ -0,0 +1,48 @@
+<?php
+
+namespace Model;
+
+require 'vendor/SimpleValidator/Validator.php';
+require 'vendor/SimpleValidator/Base.php';
+require 'vendor/SimpleValidator/Validators/Required.php';
+require 'vendor/SimpleValidator/Validators/Unique.php';
+require 'vendor/SimpleValidator/Validators/MaxLength.php';
+require 'vendor/SimpleValidator/Validators/MinLength.php';
+require 'vendor/SimpleValidator/Validators/Integer.php';
+require 'vendor/SimpleValidator/Validators/Equals.php';
+require 'vendor/SimpleValidator/Validators/AlphaNumeric.php';
+require 'vendor/PicoDb/Database.php';
+require __DIR__.'/schema.php';
+
+abstract class Base
+{
+ const DB_VERSION = 1;
+ const DB_FILENAME = 'data/db.sqlite';
+
+ private static $dbInstance = null;
+ protected $db;
+
+ public function __construct()
+ {
+ if (self::$dbInstance === null) {
+ self::$dbInstance = $this->getDatabaseInstance();
+ }
+
+ $this->db = self::$dbInstance;
+ }
+
+ public function getDatabaseInstance()
+ {
+ $db = new \PicoDb\Database(array(
+ 'driver' => 'sqlite',
+ 'filename' => self::DB_FILENAME
+ ));
+
+ if ($db->schema()->check(self::DB_VERSION)) {
+ return $db;
+ }
+ else {
+ die('Unable to migrate database schema!');
+ }
+ }
+}