Passed
Push — main ( e48c60...3aaa91 )
by Miaad
01:36
created

db::init()   A

Complexity

Conditions 4
Paths 5

Size

Total Lines 18
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 4
eloc 11
c 1
b 0
f 1
nc 5
nop 0
dl 0
loc 18
rs 9.9
1
<?php
2
3
namespace BPT\database;
4
5
use BPT\constants\dbTypes;
6
use BPT\constants\loggerTypes;
7
use BPT\exception\bptException;
8
use BPT\logger;
9
use BPT\settings;
10
11
/**
12
 * db class , for manage and handling databases
13
 */
14
class db {
15
    private static bool $active = false;
16
17
    /**
18
     * @internal Only for BPT self usage , Don't use it in your source!
19
     */
20
    public static function init (): void {
21
        if (!empty(settings::$db)) {
22
            if (!isset(settings::$db['type'])) {
23
                settings::$db['type'] = dbTypes::JSON;
24
            }
25
            switch (settings::$db['type']) {
26
                case dbTypes::JSON:
27
                    json::init();
28
                    break;
29
                //                case dbTypes::MYSQL:
30
                //                    break;
31
                //                case dbTypes::MEDOO:
32
                //                    break;
33
                default:
34
                    logger::write('DB type is wrong', loggerTypes::ERROR);
35
                    throw new bptException('DB_TYPE_WRONG');
36
            }
37
            self::$active = true;
38
        }
39
    }
40
41
    /**
42
     * @internal Only for BPT self usage , Don't use it in your source!
43
     */
44
    public static function process(): void {
45
        if (self::$active) {
46
            switch (settings::$db['type']) {
47
                case dbTypes::JSON:
48
                    json::process();
49
                    break;
50
//                case dbTypes::MYSQL:
51
//                    break;
52
//                case dbTypes::MEDOO:
53
//                    break;
54
            }
55
        }
56
    }
57
58
    /**
59
     * @internal Only for BPT self usage , Don't use it in your source!
60
     */
61
    public static function save(): void {
62
        if (self::$active) {
63
            switch (settings::$db['type']) {
64
                case dbTypes::JSON:
65
                    json::save();
66
                    break;
67
//                case dbTypes::MYSQL:
68
//                    break;
69
//                case dbTypes::MEDOO:
70
//                    break;
71
            }
72
        }
73
    }
74
}