PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.1.2
GiveWP – Donation Plugin and Fundraising Platform v3.1.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / QueryBuilder / JoinQueryBuilder.php
give / src / Framework / QueryBuilder Last commit date
Clauses 4 years ago Concerns 3 years ago Types 4 years ago JoinQueryBuilder.php 4 years ago QueryBuilder.php 4 years ago WhereQueryBuilder.php 4 years ago
JoinQueryBuilder.php
179 lines
1 <?php
2
3 namespace Give\Framework\QueryBuilder;
4
5 use Give\Framework\QueryBuilder\Clauses\Join;
6 use Give\Framework\QueryBuilder\Clauses\JoinCondition;
7 use Give\Framework\QueryBuilder\Clauses\RawSQL;
8 use Give\Framework\QueryBuilder\Types\JoinType;
9 use Give\Framework\QueryBuilder\Types\Operator;
10
11 /**
12 * @since 2.19.0
13 */
14 class JoinQueryBuilder
15 {
16
17 /**
18 * @var Join[]|JoinCondition[]|RawSQL[]
19 */
20 private $joins = [];
21
22 /**
23 * @param string|RawSQL $table
24 * @param null|string $alias
25 *
26 * @return $this
27 */
28 public function leftJoin($table, $alias = null)
29 {
30 return $this->join(
31 JoinType::LEFT,
32 $table,
33 $alias
34 );
35 }
36
37 /**
38 * @param string|RawSQL $table
39 * @param null|string $alias
40 *
41 * @return $this
42 */
43 public function rightJoin($table, $alias = null)
44 {
45 return $this->join(
46 JoinType::RIGHT,
47 $table,
48 $alias
49 );
50 }
51
52 /**
53 * @param string|RawSQL $table
54 * @param null|string $alias
55 *
56 * @return $this
57 */
58 public function innerJoin($table, $alias = null)
59 {
60 return $this->join(
61 JoinType::INNER,
62 $table,
63 $alias
64 );
65 }
66
67 /**
68 * @param string $column1
69 * @param string $column2
70 * @param bool $quote
71 *
72 * @return $this
73 */
74 public function on($column1, $column2, $quote = false)
75 {
76 return $this->joinCondition(
77 Operator::ON,
78 $column1,
79 $column2,
80 $quote
81 );
82 }
83
84 /**
85 * @param string $column1
86 * @param string $column2
87 * @param bool $quote
88 *
89 * @return $this
90 */
91 public function andOn($column1, $column2, $quote = null)
92 {
93 return $this->joinCondition(
94 Operator::_AND,
95 $column1,
96 $column2,
97 $quote
98 );
99 }
100
101 /**
102 * @param string $column1
103 * @param string $column2
104 * @param bool $quote
105 *
106 * @return $this
107 */
108 public function orOn($column1, $column2, $quote = null)
109 {
110 return $this->joinCondition(
111 Operator::_OR,
112 $column1,
113 $column2,
114 $quote
115 );
116 }
117
118 /**
119 * Add raw SQL JOIN clause
120 *
121 * @param string $sql
122 * @param ...$args
123 */
124 public function joinRaw($sql, ...$args)
125 {
126 $this->joins[] = new RawSQL($sql, $args);
127 }
128
129 /**
130 * Add Join
131 *
132 * @param string $joinType
133 * @param string|RawSQL $table
134 * @param string $alias
135 *
136 * @return $this
137 */
138 private function join($joinType, $table, $alias)
139 {
140 $this->joins[] = new Join(
141 $joinType,
142 $table,
143 $alias
144 );
145
146 return $this;
147 }
148
149 /**
150 * Add JoinCondition
151 *
152 * @param string $operator
153 * @param string $column1
154 * @param string $column2
155 * @param bool $quote
156 *
157 * @return $this
158 */
159 private function joinCondition($operator, $column1, $column2, $quote)
160 {
161 $this->joins[] = new JoinCondition(
162 $operator,
163 $column1,
164 $column2,
165 $quote
166 );
167
168 return $this;
169 }
170
171 /**
172 * @return Join[]|JoinCondition[]
173 */
174 public function getDefinedJoins()
175 {
176 return $this->joins;
177 }
178 }
179