PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.25.0
GiveWP – Donation Plugin and Fundraising Platform v2.25.0
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 / Clauses / Having.php
give / src / Framework / QueryBuilder / Clauses Last commit date
From.php 4 years ago Having.php 4 years ago Join.php 4 years ago JoinCondition.php 4 years ago MetaTable.php 4 years ago OrderBy.php 4 years ago RawSQL.php 4 years ago Select.php 4 years ago Union.php 4 years ago Where.php 4 years ago
Having.php
127 lines
1 <?php
2
3 namespace Give\Framework\QueryBuilder\Clauses;
4
5 use Give\Framework\QueryBuilder\Types\Math;
6 use Give\Framework\QueryBuilder\Types\Operator;
7 use InvalidArgumentException;
8
9 /**
10 * @since 2.19.0
11 */
12 class Having
13 {
14 /**
15 * @var string
16 */
17 public $column;
18
19 /**
20 * @var string
21 */
22 public $comparisonOperator;
23
24 /**
25 * @var string|int
26 */
27 public $value;
28
29 /**
30 * @var string
31 */
32 public $logicalOperator;
33
34 /**
35 * @var string|null
36 */
37 public $mathFunction;
38
39 /**
40 * @param string $column
41 * @param string $comparisonOperator
42 * @param string|int $value
43 * @param string|null $logicalOperator
44 * @param string $mathFunction
45 */
46 public function __construct($column, $comparisonOperator, $value, $logicalOperator, $mathFunction = null)
47 {
48 $this->column = trim($column);
49 $this->comparisonOperator = $this->getComparisonOperator($comparisonOperator);
50 $this->value = $value;
51 $this->logicalOperator = $logicalOperator ? $this->getLogicalOperator($logicalOperator) : '';
52 $this->mathFunction = $this->getMathFunction($mathFunction);
53 }
54
55 /**
56 * @param string $logicalOperator
57 *
58 * @return string
59 */
60 private function getLogicalOperator($logicalOperator)
61 {
62 $operators = [
63 Operator::_AND,
64 Operator::_OR
65 ];
66
67 $logicalOperator = strtoupper($logicalOperator);
68
69 if ( ! in_array($logicalOperator, $operators, true)) {
70 throw new InvalidArgumentException(
71 sprintf(
72 'Unsupported logical operator %s. Please use one of the supported operators (%s)',
73 $logicalOperator,
74 implode(',', $operators)
75 )
76 );
77 }
78
79 return $logicalOperator;
80 }
81
82 /**
83 * @param string $comparisonOperator
84 *
85 * @return string
86 */
87 private function getComparisonOperator($comparisonOperator)
88 {
89 $operators = [
90 '<',
91 '<=',
92 '>',
93 '>=',
94 '<>',
95 '!=',
96 '='
97 ];
98
99 if ( ! in_array($comparisonOperator, $operators, true)) {
100 throw new InvalidArgumentException(
101 sprintf(
102 'Unsupported comparison operator %s. Please use one of the supported operators (%s)',
103 $comparisonOperator,
104 implode(',', $operators)
105 )
106 );
107 }
108
109 return $comparisonOperator;
110 }
111
112
113 /**
114 * @param string $mathFunction
115 *
116 * @return string
117 */
118 private function getMathFunction($mathFunction)
119 {
120 if (array_key_exists($mathFunction, Math::getTypes())) {
121 return $mathFunction;
122 }
123
124 return null;
125 }
126 }
127