10
10
11
11
namespace NilPortugues \Sql \QueryBuilder \Syntax ;
12
12
13
- use NilPortugues \Sql \QueryBuilder \Manipulation \QueryInterface ;
14
13
use NilPortugues \Sql \QueryBuilder \Manipulation \QueryException ;
15
14
use NilPortugues \Sql \QueryBuilder \Manipulation \QueryFactory ;
15
+ use NilPortugues \Sql \QueryBuilder \Manipulation \QueryInterface ;
16
16
use NilPortugues \Sql \QueryBuilder \Manipulation \Select ;
17
17
18
18
/**
@@ -29,7 +29,9 @@ class Where
29
29
const OPERATOR_EQUAL = '= ' ;
30
30
const OPERATOR_NOT_EQUAL = '<> ' ;
31
31
const CONJUNCTION_AND = 'AND ' ;
32
+ const CONJUNCTION_AND_NOT = 'AND NOT ' ;
32
33
const CONJUNCTION_OR = 'OR ' ;
34
+ const CONJUNCTION_OR_NOT = 'OR NOT ' ;
33
35
const CONJUNCTION_EXISTS = 'EXISTS ' ;
34
36
const CONJUNCTION_NOT_EXISTS = 'NOT EXISTS ' ;
35
37
@@ -149,6 +151,29 @@ public function getConjunction()
149
151
return $ this ->conjunction ;
150
152
}
151
153
154
+ /**
155
+ * @param string $operator
156
+ *
157
+ * @return $this
158
+ *
159
+ * @throws QueryException
160
+ */
161
+ public function conjunction ($ operator )
162
+ {
163
+ if (false === \in_array (
164
+ $ operator ,
165
+ [self ::CONJUNCTION_AND , self ::CONJUNCTION_OR , self ::CONJUNCTION_OR_NOT , self ::CONJUNCTION_AND_NOT ]
166
+ )
167
+ ) {
168
+ throw new QueryException (
169
+ "Invalid conjunction specified, must be one of AND or OR, but ' " .$ operator ."' was found. "
170
+ );
171
+ }
172
+ $ this ->conjunction = $ operator ;
173
+
174
+ return $ this ;
175
+ }
176
+
152
177
/**
153
178
* @return array
154
179
*/
@@ -174,25 +199,6 @@ public function subWhere($operator = 'OR')
174
199
return $ filter ;
175
200
}
176
201
177
- /**
178
- * @param string $operator
179
- *
180
- * @return $this
181
- *
182
- * @throws QueryException
183
- */
184
- public function conjunction ($ operator )
185
- {
186
- if (false === \in_array ($ operator , [self ::CONJUNCTION_AND , self ::CONJUNCTION_OR ])) {
187
- throw new QueryException (
188
- "Invalid conjunction specified, must be one of AND or OR, but ' " .$ operator ."' was found. "
189
- );
190
- }
191
- $ this ->conjunction = $ operator ;
192
-
193
- return $ this ;
194
- }
195
-
196
202
/**
197
203
* @return Table
198
204
*/
@@ -218,7 +224,7 @@ public function setTable($table)
218
224
/**
219
225
* equals alias.
220
226
*
221
- * @param $column
227
+ * @param $column
222
228
* @param int $value
223
229
*
224
230
* @return static
@@ -240,8 +246,8 @@ public function equals($column, $value)
240
246
}
241
247
242
248
/**
243
- * @param $column
244
- * @param $value
249
+ * @param $column
250
+ * @param $value
245
251
* @param string $operator
246
252
*
247
253
* @return $this
@@ -333,7 +339,7 @@ public function lessThanOrEqual($column, $value)
333
339
334
340
/**
335
341
* @param string $column
336
- * @param $value
342
+ * @param $value
337
343
*
338
344
* @return static
339
345
*/
@@ -509,6 +515,14 @@ public function exists(Select $select)
509
515
return $ this ;
510
516
}
511
517
518
+ /**
519
+ * @return array
520
+ */
521
+ public function getExists ()
522
+ {
523
+ return $ this ->exists ;
524
+ }
525
+
512
526
/**
513
527
* @param Select $select
514
528
*
@@ -521,6 +535,14 @@ public function notExists(Select $select)
521
535
return $ this ;
522
536
}
523
537
538
+ /**
539
+ * @return array
540
+ */
541
+ public function getNotExists ()
542
+ {
543
+ return $ this ->notExists ;
544
+ }
545
+
524
546
/**
525
547
* @return array
526
548
*/
@@ -584,20 +606,4 @@ public function getNull()
584
606
{
585
607
return $ this ->isNull ;
586
608
}
587
-
588
- /**
589
- * @return array
590
- */
591
- public function getExists ()
592
- {
593
- return $ this ->exists ;
594
- }
595
-
596
- /**
597
- * @return array
598
- */
599
- public function getNotExists ()
600
- {
601
- return $ this ->notExists ;
602
- }
603
609
}
0 commit comments