Completed
Push — master ( 670622...a5ffbc )
by Edson
01:42
created

DB   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 42
ccs 0
cts 31
cp 0
rs 10
c 0
b 0
f 0
wmc 8

5 Methods

Rating   Name   Duplication   Size   Complexity  
A conn() 0 3 1
A singleton() 0 7 3
A config() 0 6 2
A __callStatic() 0 3 1
A mysql() 0 9 1
1
<?php
2
3
namespace Keep;
4
5
class DB
6
{
7
    private static $db = null;
8
    private static $driver;
9
10
    public static function __callStatic(string $func, array $params)
11
    {
12
        return call_user_func_array([self::singleton(), $func], $params);
13
    }
14
15
    public static function config(array $config)
16
    {
17
        switch ($config['driver']) {
18
            case 'mysql':
19
                self::mysql($config);
20
                break;
21
        }
22
    }
23
24
    public static function conn(): void
25
    {
26
        self::singleton()->connection(self::$driver);
27
    }
28
29
    public static function singleton(): Database
30
    {
31
        if (!isset(self::$db) || is_null(self::$db)) {
32
            self::$db = new Database;
33
        }
34
35
        return self::$db;
36
    }
37
38
    private static function mysql(array $config): void
39
    {
40
        $mysql = new Mysql;
41
        $mysql->setHost($config['host']);
42
        $mysql->setDbname($config['dbname']);
43
        $mysql->setUser($config['user']);
44
        $mysql->setPass($config['pass']);
45
46
        self::$driver = $mysql;
47
    }
48
}
49