Connect::__clone()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Source\Core;
4
5
class Connect
6
{
7
    /** @const array */
8
    private const OPTIONS = [
9
        \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
10
        \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
11
        \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ,
12
        \PDO::ATTR_CASE => \PDO::CASE_NATURAL
13
    ];
14
15
    /** @var \PDO */
16
    private static $instance;
17
18
    /**
19
     * @return \PDO
20
     */
21
    public static function getInstance(): ?\PDO
22
    {
23
        if (empty(self::$instance)) {
24
            try {
25
                self::$instance = new \PDO(
26
                    "mysql:host=" . CONF_DB_HOST . ";dbname=" . CONF_DB_NAME,
27
                    CONF_DB_USER,
28
                    CONF_DB_PASS,
29
                    self::OPTIONS
30
                );
31
            } catch (\PDOException $exception) {
32
                redirect("/ops/problemas");
33
            }
34
        }
35
36
        return self::$instance;
37
    }
38
39
    /**
40
     * Connect constructor.
41
     */
42
    final private function __construct()
43
    {
44
    }
45
46
    /**
47
     * Connect clone.
48
     */
49
    final private function __clone()
50
    {
51
    }
52
}
53