@@ -67,23 +67,20 @@ discard block |
||
67 | 67 | 'field' => $field, |
68 | 68 | ], |
69 | 69 | ]; |
70 | - } |
|
71 | - else { |
|
70 | + } else { |
|
72 | 71 | $new_rule = [ |
73 | 72 | 'term' => [ |
74 | 73 | $field => $operand->getValue() |
75 | 74 | ] |
76 | 75 | ]; |
77 | 76 | } |
78 | - } |
|
79 | - elseif ($operator == 'in') { |
|
77 | + } elseif ($operator == 'in') { |
|
80 | 78 | $new_rule = [ |
81 | 79 | 'terms' => [ |
82 | 80 | $field => $operand->getPossibilities() |
83 | 81 | ] |
84 | 82 | ]; |
85 | - } |
|
86 | - elseif ($operator == '<') { |
|
83 | + } elseif ($operator == '<') { |
|
87 | 84 | $new_rule = [ |
88 | 85 | 'range' => [ |
89 | 86 | $field => [ |
@@ -91,8 +88,7 @@ discard block |
||
91 | 88 | ], |
92 | 89 | ] |
93 | 90 | ]; |
94 | - } |
|
95 | - elseif ($operator == '>') { |
|
91 | + } elseif ($operator == '>') { |
|
96 | 92 | $new_rule = [ |
97 | 93 | 'range' => [ |
98 | 94 | $field => [ |
@@ -100,8 +96,7 @@ discard block |
||
100 | 96 | ], |
101 | 97 | ] |
102 | 98 | ]; |
103 | - } |
|
104 | - elseif ($operator == '<=') { |
|
99 | + } elseif ($operator == '<=') { |
|
105 | 100 | $new_rule = [ |
106 | 101 | 'range' => [ |
107 | 102 | $field => [ |
@@ -109,8 +104,7 @@ discard block |
||
109 | 104 | ], |
110 | 105 | ] |
111 | 106 | ]; |
112 | - } |
|
113 | - elseif ($operator == '>=') { |
|
107 | + } elseif ($operator == '>=') { |
|
114 | 108 | $new_rule = [ |
115 | 109 | 'range' => [ |
116 | 110 | $field => [ |
@@ -118,16 +112,14 @@ discard block |
||
118 | 112 | ], |
119 | 113 | ] |
120 | 114 | ]; |
121 | - } |
|
122 | - elseif ($operator == '!=' && $operand->getValue() === null) { |
|
115 | + } elseif ($operator == '!=' && $operand->getValue() === null) { |
|
123 | 116 | // https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html |
124 | 117 | $new_rule = [ |
125 | 118 | 'exists' => [ |
126 | 119 | 'field' => $field, |
127 | 120 | ], |
128 | 121 | ]; |
129 | - } |
|
130 | - elseif ($operator == 'regexp') { |
|
122 | + } elseif ($operator == 'regexp') { |
|
131 | 123 | // https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-exists-query.html |
132 | 124 | $new_rule = [ |
133 | 125 | 'regexp' => [ |
@@ -138,8 +130,7 @@ discard block |
||
138 | 130 | ], |
139 | 131 | ], |
140 | 132 | ]; |
141 | - } |
|
142 | - else { |
|
133 | + } else { |
|
143 | 134 | throw new \InvalidArgumentException( |
144 | 135 | "Unhandled operator '$operator' during ES query generation" |
145 | 136 | ); |
@@ -33,13 +33,15 @@ discard block |
||
33 | 33 | */ |
34 | 34 | public function addParameter($value) |
35 | 35 | { |
36 | - if (is_numeric($value)) |
|
37 | - return $value; |
|
36 | + if (is_numeric($value)) { |
|
37 | + return $value; |
|
38 | + } |
|
38 | 39 | |
39 | 40 | $uid = 'param_'.hash('crc32b', serialize($value)); |
40 | 41 | |
41 | - if (isset($this->parameters[$uid])) |
|
42 | - return ':'.$uid; |
|
42 | + if (isset($this->parameters[$uid])) { |
|
43 | + return ':'.$uid; |
|
44 | + } |
|
43 | 45 | |
44 | 46 | $this->parameters[$uid] = $value; |
45 | 47 | |
@@ -84,71 +86,54 @@ discard block |
||
84 | 86 | { |
85 | 87 | if ($rule instanceof EqualRule) { |
86 | 88 | $value = $rule->getValue(); |
87 | - } |
|
88 | - elseif ($rule instanceof InRule) { |
|
89 | + } elseif ($rule instanceof InRule) { |
|
89 | 90 | $value = $rule->getPossibilities(); |
90 | - } |
|
91 | - elseif ($rule instanceof NotInRule) { |
|
91 | + } elseif ($rule instanceof NotInRule) { |
|
92 | 92 | $operator = 'NOT IN'; |
93 | 93 | $value = $rule->getPossibilities(); |
94 | - } |
|
95 | - elseif ($rule instanceof AboveRule) { |
|
94 | + } elseif ($rule instanceof AboveRule) { |
|
96 | 95 | $value = $rule->getLowerLimit(); |
97 | - } |
|
98 | - elseif ($rule instanceof BelowRule) { |
|
96 | + } elseif ($rule instanceof BelowRule) { |
|
99 | 97 | $value = $rule->getUpperLimit(); |
100 | - } |
|
101 | - elseif ($rule instanceof AboveOrEqualRule) { |
|
98 | + } elseif ($rule instanceof AboveOrEqualRule) { |
|
102 | 99 | $value = $rule->getMinimum(); |
103 | - } |
|
104 | - elseif ($rule instanceof BelowOrEqualRule) { |
|
100 | + } elseif ($rule instanceof BelowOrEqualRule) { |
|
105 | 101 | $value = $rule->getMaximum(); |
106 | - } |
|
107 | - elseif ($rule instanceof NotEqualRule) { |
|
102 | + } elseif ($rule instanceof NotEqualRule) { |
|
108 | 103 | $value = $rule->getValue(); |
109 | - } |
|
110 | - elseif ($rule instanceof RegexpRule) { |
|
104 | + } elseif ($rule instanceof RegexpRule) { |
|
111 | 105 | $value = RegexpRule::php2mariadbPCRE( $rule->getPattern() ); |
112 | - } |
|
113 | - else { |
|
106 | + } else { |
|
114 | 107 | throw new \InvalidArgumentException( |
115 | 108 | "Unhandled operator '$operator' during SQL query generation" |
116 | 109 | ); |
117 | 110 | } |
118 | 111 | |
119 | 112 | if (gettype($value) == 'integer') { |
120 | - } |
|
121 | - elseif (gettype($value) == 'double') { |
|
113 | + } elseif (gettype($value) == 'double') { |
|
122 | 114 | // TODO disable locale to handle separators |
123 | - } |
|
124 | - elseif ($value instanceof \DateTime) { |
|
115 | + } elseif ($value instanceof \DateTime) { |
|
125 | 116 | $value = "'" . $value->format('Y-m-d H:i:s') . "'"; |
126 | - } |
|
127 | - elseif (gettype($value) == 'string') { |
|
117 | + } elseif (gettype($value) == 'string') { |
|
128 | 118 | $value = $this->addParameter($value); |
129 | - } |
|
130 | - elseif (gettype($value) == 'array') { |
|
119 | + } elseif (gettype($value) == 'array') { |
|
131 | 120 | $sql_part = []; |
132 | 121 | foreach ($value as $possibility) { |
133 | 122 | $sql_part[] = $this->addParameter($possibility); |
134 | 123 | } |
135 | 124 | $value = '(' . implode(', ', $sql_part) . ')'; |
136 | - } |
|
137 | - elseif ($value === null) { |
|
125 | + } elseif ($value === null) { |
|
138 | 126 | $value = "NULL"; |
139 | 127 | if ($rule instanceof EqualRule) { |
140 | 128 | $operator = 'IS'; |
141 | - } |
|
142 | - elseif ($rule instanceof NotEqualRule) { |
|
129 | + } elseif ($rule instanceof NotEqualRule) { |
|
143 | 130 | $operator = 'IS NOT'; |
144 | - } |
|
145 | - else { |
|
131 | + } else { |
|
146 | 132 | throw new \InvalidArgumentException( |
147 | 133 | "NULL is only handled for equality / difference" |
148 | 134 | ); |
149 | 135 | } |
150 | - } |
|
151 | - else { |
|
136 | + } else { |
|
152 | 137 | throw new \InvalidArgumentException( |
153 | 138 | "Unhandled type of value: ".gettype($value). ' | ' .var_export($value, true) |
154 | 139 | ); |