QueryBuilder   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 42
rs 10
c 0
b 0
f 0
ccs 10
cts 10
cp 1
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A select() 0 3 1
A insert() 0 3 1
A delete() 0 3 1
A truncate() 0 3 1
A update() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace QB\Generic\QueryBuilder;
6
7
use QB\Generic\Clause\IColumn;
8
use QB\Generic\Clause\Table;
9
use QB\Generic\Statement\Delete;
10
use QB\Generic\Statement\IDelete;
11
use QB\Generic\Statement\IInsert;
12
use QB\Generic\Statement\Insert;
13
use QB\Generic\Statement\ISelect;
14
use QB\Generic\Statement\ITruncate;
15
use QB\Generic\Statement\IUpdate;
16
use QB\Generic\Statement\Select;
17
use QB\Generic\Statement\Truncate;
18
use QB\Generic\Statement\Update;
19
20
class QueryBuilder implements IQueryBuilder
21
{
22
    /**
23
     * @return ISelect
24
     */
25 1
    public function select(IColumn|string ...$columns): ISelect
26
    {
27 1
        return new Select(...$columns);
28
    }
29
30
    /**
31
     * @return IInsert
32
     */
33 1
    public function insert(): IInsert
34
    {
35 1
        return new Insert();
36
    }
37
38
    /**
39
     * @param Table|string ...$tables
40
     *
41
     * @return IUpdate
42
     */
43 2
    public function update(Table|string ...$tables): IUpdate
44
    {
45 2
        return new Update(...$tables);
46
    }
47
48
    /**
49
     * @return IDelete
50
     */
51 2
    public function delete(): IDelete
52
    {
53 2
        return new Delete();
54
    }
55
56
    /**
57
     * @return ITruncate
58
     */
59 3
    public function truncate(): ITruncate
60
    {
61 3
        return new Truncate();
62
    }
63
}
64