Completed
Push — master ( 3e535a...8096b4 )
by Beniamin
03:04
created

SelectBuilder::doAddSelect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
3
/**
4
 * This file is part of Phuria SQL Builder package.
5
 *
6
 * Copyright (c) 2016 Beniamin Jonatan Šimko
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Phuria\SQLBuilder\QueryBuilder;
13
14
use Phuria\SQLBuilder\Table\AbstractTable;
15
16
/**
17
 * @author Beniamin Jonatan Šimko <[email protected]>
18
 */
19
class SelectBuilder extends AbstractBuilder implements
20
    Clause\GroupByClauseInterface,
21
    Clause\HavingClauseInterface,
22
    Clause\LimitClauseInterface,
23
    Clause\OrderByClauseInterface,
24
    Clause\WhereClauseInterface,
25
    Component\JoinComponentInterface,
26
    Component\TableComponentInterface
27
{
28
    use Clause\GroupByClauseTrait;
29
    use Clause\HavingClauseTrait;
30
    use Clause\LimitClauseTrait;
31
    use Clause\OrderByClauseTrait;
32
    use Clause\WhereClauseTrait;
33
    use Component\JoinComponentTrait;
34
    use Component\ParameterComponentTrait;
35
    use Component\TableComponentTrait;
36
37
    /**
38
     * @var array $selectClauses
39
     */
40
    private $selectClauses = [];
41
42
    /**
43
     * @return $this
44
     */
45 26
    public function addSelect()
46
    {
47 26
        foreach (func_get_args() as $clause) {
48 26
            $this->doAddSelect($clause);
49 26
        }
50
51 26
        return $this;
52
    }
53
54
    /**
55
     * @param string $clause
56
     */
57 26
    private function doAddSelect($clause)
58
    {
59 26
        $this->selectClauses[] = $clause;
60 26
    }
61
62
    /**
63
     * @return array
64
     */
65 26
    public function getSelectClauses()
66
    {
67 26
        return $this->selectClauses;
68
    }
69
70
    /**
71
     * @param mixed       $table
72
     * @param string|null $alias
73
     *
74
     * @return AbstractTable
75
     */
76 24
    public function from($table, $alias = null)
77
    {
78 24
        return $this->addFrom($table, $alias);
79
    }
80
81
    /**
82
     * @param mixed       $table
83
     * @param string|null $alias
84
     *
85
     * @return AbstractTable
86
     */
87 24
    public function addFrom($table, $alias = null)
88
    {
89 24
        return $this->addRootTable($table, $alias);
90
    }
91
}