]>
jfr.im git - uguu.git/blob - src/Classes/Connector.php
5 * @copyright Copyright (c) 2022-2023 Go Johansson (nokonoko) <neku@pomf.se>
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
21 namespace Pomf\Uguu\Classes
;
25 class Connector
extends Database
28 public string $dbType;
30 public Response
$response;
32 public function errorHandler(int $errno, string $errstr):void
34 if ($this->CONFIG
['DEBUG']) {
35 $this->response
->error(500, 'Server error: ' . $errstr);
37 $this->response
->error(500, 'Server error.');
41 public function fatalErrorHandler():void
43 if (!is_null($e = error_get_last())) {
44 if ($this->CONFIG
['DEBUG']) {
45 $this->response
->error(500, 'FATAL Server error: ' . print_r($e, true));
47 $this->response
->error(500, 'Server error.');
53 * Reads the config.json file and populates the CONFIG property with the settings
54 * Also assembles the PDO DB connection and registers error handlers.
57 public function __construct()
59 $this->response
= new Response('json');
60 if (!file_exists(__DIR__
. '/../config.json')) {
61 $this->response
->error(500, 'Cant read settings file.');
63 $this->CONFIG
= json_decode(
64 file_get_contents(__DIR__
. '/../config.json'),
67 ini_set('display_errors', 0);
68 set_error_handler([$this, "errorHandler"]);
69 register_shutdown_function([$this, "fatalErrorHandler"]);
70 $this->dbType
= $this->CONFIG
['DB_MODE'];
72 $this->CONFIG
['DB_MODE'] . ':' . $this->CONFIG
['DB_PATH'],
73 $this->CONFIG
['DB_USER'],
74 $this->CONFIG
['DB_PASS']