@@ -38,49 +38,49 @@ class SearchController{
38
38
/**
39
39
* @var string SQL Query
40
40
*/
41
- private $ QueryCondition = "" ;
41
+ private string $ QueryCondition = '' ;
42
42
43
43
/**
44
44
* @var string Search query algorithm that needs to be used
45
45
*/
46
- private $ searchAlgorithm ;
46
+ private string $ searchAlgorithm ;
47
47
48
48
/**
49
49
* @var string Search request query value
50
50
*/
51
- private $ searchQuery = null ;
51
+ private mixed $ searchQuery = '' ;
52
52
53
53
/**
54
- * @var array MYSQL database table rows to search from
54
+ * @var array Search request query values
55
55
*/
56
- private $ paramArray = array () ;
56
+ private array $ searchQueryBuilder = [] ;
57
57
58
58
/**
59
- * @var string MYSQL database table row for tag value
59
+ * @var array MYSQL database table rows to search form
60
60
*/
61
- private $ paramTags ;
61
+ private array $ paramArray = [] ;
62
62
63
63
/**
64
- * @var string SQL LIKE query operator to be use
64
+ * @var string MYSQL database table row for tag value
65
65
*/
66
- private $ operators ;
66
+ private string $ paramTags ;
67
67
68
68
/**
69
- * @var string SQL query prefix
69
+ * @var string SQL LIKE query operator to be used
70
70
*/
71
- private $ queryStart ;
71
+ private string $ operators ;
72
72
73
73
/**
74
- * @var string SQL query suffix
74
+ * @var string SQL query prefix
75
75
*/
76
- private $ queryEnd ;
76
+ private string $ queryStart ;
77
77
78
78
/**
79
- * @var bool Search request query in lowercase
79
+ * @var string SQL query suffix
80
80
*/
81
- private $ lowerCaseQuery = false ;
81
+ private string $ queryEnd ;
82
82
83
- public function __construct ($ algorithm = self ::OR ) {
83
+ public function __construct (string $ algorithm = self ::OR ) {
84
84
$ this ->searchAlgorithm = $ algorithm ;
85
85
$ this ->operators = self ::END_WITH_QUERY ;
86
86
$ this ->queryStart = self ::LIKE ;
@@ -92,17 +92,16 @@ public function __construct($algorithm = self::OR) {
92
92
*
93
93
* @param array $param columns
94
94
*/
95
- public function setParameter ($ param =array ()) {
95
+ public function setParameter (array $ param =[]): void {
96
96
$ this ->paramArray = $ param ;
97
- return $ this ;
98
97
}
99
98
100
99
/**
101
100
* Set initial SQL queries.
102
101
*
103
102
* @param string $query query
104
103
*/
105
- public function setSQLQuery ($ query ){
104
+ public function setSQLQuery (string $ query ): void {
106
105
$ this ->QueryCondition = $ query ;
107
106
}
108
107
@@ -111,19 +110,17 @@ public function setSQLQuery($query){
111
110
*
112
111
* @param string $pattern name
113
112
*/
114
- public function setOperators ($ pattern ){
113
+ public function setOperators (string $ pattern ): void {
115
114
$ this ->operators = $ pattern ;
116
- return $ this ;
117
115
}
118
116
119
117
/**
120
118
* Set database tag table column name.
121
119
*
122
120
* @param string $column name
123
121
*/
124
- public function setTags ($ column ){
122
+ public function setTags (string $ column ): void {
125
123
$ this ->paramTags = $ column ;
126
- return $ this ;
127
124
}
128
125
129
126
/**
@@ -132,46 +129,37 @@ public function setTags($column){
132
129
* @param string $query query value
133
130
* @return object|SearchController
134
131
*/
135
- public function setQuery ($ query ){
136
- $ this ->searchQuery = htmlspecialchars ($ query , ENT_QUOTES , "UTF-8 " );
137
- return $ this ;
138
- }
139
-
140
- public function toLower (){
141
- $ this ->lowerCaseQuery = true ;
142
- $ this ->searchQuery = strtolower ($ this ->searchQuery );
132
+ public function setQuery (string $ query ): SearchController {
133
+ $ this ->searchQuery = strtolower (htmlspecialchars ($ query , ENT_QUOTES , "UTF-8 " ));
143
134
return $ this ;
144
135
}
145
136
146
137
/**
147
138
* Set query prefix string.
148
139
*
149
- * @param string $str query prefix
140
+ * @param string $start query prefix
150
141
*/
151
- public function setStart ($ str ){
152
- $ this ->queryStart = $ str ;
153
- return $ this ;
142
+ public function setStart (string $ start ): void {
143
+ $ this ->queryStart = $ start ;
154
144
}
155
145
156
146
/**
157
147
* Set query suffix string.
158
148
*
159
- * @param string $str query suffix
149
+ * @param string $end query suffix
160
150
*/
161
- public function setEnd ($ str ){
162
- $ this ->queryEnd = $ str ;
163
- return $ this ;
151
+ public function setEnd (string $ end ): void {
152
+ $ this ->queryEnd = $ end ;
164
153
}
165
154
166
155
/**
167
156
* Split search query value by space.
168
157
*/
169
- public function split (){
158
+ public function split (): void {
170
159
if (strpos ($ this ->searchQuery , " " ) !== false ) {
171
160
$ this ->searchQuery = explode (" " , $ this ->searchQuery );
172
- return ;
173
161
}
174
- $ this ->searchQuery = [$ this ->searchQuery ];
162
+ // $this->searchQuery = [$this->searchQuery];
175
163
}
176
164
177
165
/**
@@ -181,29 +169,29 @@ public function split(){
181
169
* @return string query
182
170
*/
183
171
184
- private function format ($ value ) {
172
+ private function format (string $ value ): string {
185
173
$ queryString = "" ;
186
174
foreach ($ this ->paramArray as $ col ){
187
175
$ sqlQuery = str_replace ("query " , $ value , $ this ->operators );
188
- $ queryString .= ( $ this -> lowerCaseQuery ? "LOWER( " . $ col . " ) " : $ col ) . " {$ this ->queryStart } ' {$ sqlQuery }' {$ this ->queryEnd } " ;
176
+ $ queryString .= "LOWER( $ col) {$ this ->queryStart } ' {$ sqlQuery }' {$ this ->queryEnd } " ;
189
177
}
190
178
return $ queryString ;
191
179
}
192
180
193
- private function buildQuery (){
181
+ private function buildQuery (): string {
194
182
return rtrim ($ this ->format ($ this ->searchQuery ) , " {$ this ->queryEnd } " );
195
183
}
196
184
197
- private function buildArrayQuery ($ i = 0 ){
185
+ private function buildArrayQuery (int $ i = 0 ): string {
198
186
return rtrim ($ this ->format ($ this ->searchQuery [$ i ]) , " {$ this ->queryEnd } " );;
199
187
}
200
188
201
189
/**
202
- * Determine which search method to use while creating query.
190
+ * Determine which search method to use while creating a query.
203
191
*
204
192
* @return string SQL query
205
193
*/
206
- private function buildSQL (){
194
+ private function buildSQL (): string {
207
195
$ sql = "" ;
208
196
if (!empty ($ this ->paramTags )){
209
197
if (is_array ($ this ->searchQuery )) {
@@ -235,7 +223,7 @@ private function buildSQL(){
235
223
*
236
224
* @return string SQL query
237
225
*/
238
- public function getQuery (){
226
+ public function getQuery (): string {
239
227
if (!empty ($ this ->searchQuery )){
240
228
if (!empty ($ this ->searchQuery )){
241
229
if (!empty ($ this ->QueryCondition )){
0 commit comments