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

DB::__callStatic()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 2
dl 0
loc 3
ccs 0
cts 3
cp 0
crap 2
rs 10
c 0
b 0
f 0
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