]> jfr.im git - uguu.git/blobdiff - src/Classes/Connector.php
major code refactor
[uguu.git] / src / Classes / Connector.php
diff --git a/src/Classes/Connector.php b/src/Classes/Connector.php
new file mode 100644 (file)
index 0000000..59be50f
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ * Uguu
+ *
+ * @copyright Copyright (c) 2022 Go Johansson (nokonoko) <neku@pomf.se>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ */
+
+namespace Pomf\Uguu\Classes;
+
+use Exception;
+use PDO;
+
+class Connector extends Database
+{
+    public PDO $DB;
+    public array $CONFIG;
+
+    /**
+     * @throws Exception
+     */
+    public function __construct()
+    {
+        if (!file_exists(__DIR__ . '/../config.json')) {
+            throw new Exception('Cant read settings file.', 500);
+        }
+        try {
+            $this->CONFIG = json_decode(
+                file_get_contents(__DIR__ . '/../config.json'),
+                true
+            );
+            $this->assemble();
+        } catch (Exception) {
+            throw new Exception('Cant populate settings.', 500);
+        }
+    }
+
+    /**
+     * @throws Exception
+     */
+    public function assemble()
+    {
+        try {
+            $this->DB = new PDO(
+                $this->CONFIG['DB_MODE'] . ':' . $this->CONFIG['DB_PATH'],
+                $this->CONFIG['DB_USER'],
+                $this->CONFIG['DB_PASS']
+            );
+        } catch (Exception) {
+            throw new Exception('Cant connect to DB.', 500);
+        }
+    }
+}