Completed
Push — master ( a1f222...7ceccc )
by Emmanuel
03:50
created

Database::getName()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Edyan\Neuralyzer\Service;
4
5
use Edyan\Neuralyzer\Exception\NeuralizerException;
6
use Edyan\Neuralyzer\Utils\DBUtils;
7
8
/**
9
 * Class Database to inject in expression language
10
 */
11
class Database implements ServiceInterface
12
{
13
    /**
14
     * @var DBUtils
15
     */
16
    private $dbUtils;
17
18
    /**
19
     * Used for auto wiring
20
     *
21
     * @param DBUtils $dbUtils
22
     */
23
    public function __construct(DBUtils $dbUtils)
24
    {
25
        $this->dbUtils = $dbUtils;
26
    }
27
28
    /**
29
     * Returns service's name
30
     *
31
     * @return string
32
     */
33
    public function getName(): string
34
    {
35
        return 'db';
36
    }
37
38
    /**
39
     * @param string $sql
40
     *
41
     * @throws NeuralizerException
42
     *
43
     * @return array
44
     */
45
    public function query(string $sql): ?array
46
    {
47
        $conn = $this->dbUtils->getConn();
48
        $sql = trim($sql);
49
        try {
50
            $res = $conn->query($sql);
51
            if (strpos($sql, 'SELECT') === 0) {
52
                return $res->fetchAll();
53
            }
54
55
            return null;
56
        } catch (\Exception $e) {
57
            throw new NeuralizerException($e->getMessage());
58
        }
59
    }
60
}
61