Skip to content

Commit 4cabb13

Browse files
authored
Update SearchController.php
1 parent 13f66a4 commit 4cabb13

File tree

1 file changed

+73
-71
lines changed

1 file changed

+73
-71
lines changed

src/SearchController.php

Lines changed: 73 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
*/
1212
class SearchController{
1313
/**
14-
* @var string SQL patterns
15-
*/
14+
* @var string SQL patterns
15+
*/
1616
public const START_WITH_QUERY = "query%";
1717
public const END_WITH_QUERY = "%query";
1818
public const HAVE_ANY_QUERY = "%query%";
@@ -22,59 +22,62 @@ class SearchController{
2222
public const START_END_WITH_QUERY = "query%query";
2323

2424
/**
25-
* @var string SearchController algorithms
26-
*/
25+
* @var string SearchController algorithms
26+
*/
2727
public const OR = "OR";
2828
public const AND = "AND";
2929
public const NAND = "NAND";
3030
public const NOR = "NOR";
3131

3232
/**
33-
* @var string SQL search keywords
34-
*/
33+
* @var string SQL search keywords
34+
*/
3535
public const LIKE = "LIKE";
3636
public const NOT_LIKE = "NOT LIKE";
3737

3838
/**
39-
* @var string SQL Query
40-
*/
39+
* @var string SQL Query
40+
*/
4141
private $QueryCondition = "";
4242

4343
/**
44-
* @var string Search query algorithm that needs to be used
45-
*/
44+
* @var string Search query algorithm that needs to be used
45+
*/
4646
private $searchAlgorithm;
4747

4848
/**
49-
* @var string Search request query value
50-
*/
49+
* @var string Search request query value
50+
*/
5151
private $searchQuery = null;
5252

5353
/**
54-
* @var array MYSQL database table rows to search from
55-
*/
54+
* @var array MYSQL database table rows to search from
55+
*/
5656
private $paramArray = array();
5757

5858
/**
59-
* @var string MYSQL database table row for tag value
60-
*/
59+
* @var string MYSQL database table row for tag value
60+
*/
6161
private $paramTags;
6262

6363
/**
64-
* @var string SQL LIKE query operator to be use
65-
*/
64+
* @var string SQL LIKE query operator to be use
65+
*/
6666
private $operators;
6767

6868
/**
69-
* @var string SQL query prefix
70-
*/
69+
* @var string SQL query prefix
70+
*/
7171
private $queryStart;
7272

7373
/**
74-
* @var string SQL query suffix
75-
*/
74+
* @var string SQL query suffix
75+
*/
7676
private $queryEnd;
7777

78+
/**
79+
* Constructor
80+
*/
7881
public function __construct($algorithm = self::OR) {
7982
$this->searchAlgorithm = $algorithm;
8083
$this->operators = self::END_WITH_QUERY;
@@ -83,73 +86,67 @@ public function __construct($algorithm = self::OR) {
8386
}
8487

8588
/**
86-
* Set database search table columns.
87-
*
88-
* @param array $param columns
89-
*/
89+
* Set database search table columns.
90+
*
91+
* @param array $param columns
92+
*/
9093
public function setParameter($param=array()){
9194
$this->paramArray = $param;
9295
}
9396

9497
/**
95-
* Set initial SQL queries.
96-
*
97-
* @param string $query query
98-
*/
98+
* Set initial SQL queries.
99+
* @param string $query query
100+
*/
99101
public function setSQLQuery($query){
100102
$this->QueryCondition = $query;
101103
}
102104

103105
/**
104-
* Set database search operator pattern.
105-
*
106-
* @param string $pattern name
107-
*/
108-
public function setOperators($pattern){
109-
$this->operators = $pattern;
106+
* Set database search operator pattern.
107+
* @param string $operator name
108+
*/
109+
public function setOperators($operator){
110+
$this->operators = $operator;
110111
}
111112

112113
/**
113-
* Set database tag table column name.
114-
*
115-
* @param string $column name
116-
*/
114+
* Set database tag table column name.
115+
* @param string $column name
116+
*/
117117
public function setTags($column){
118118
$this->paramTags = $column;
119119
}
120120

121121
/**
122-
* Set search query value.
123-
*
124-
* @param string $query query value
125-
* @return object|SearchController
126-
*/
122+
* Set search query value.
123+
* @param string $query query value
124+
* @return object|SearchController
125+
*/
127126
public function setQuery($query){
128127
$this->searchQuery = htmlspecialchars($query, ENT_QUOTES, "UTF-8");
129128
return $this;
130129
}
131130

132131
/**
133-
* Set query prefix string.
134-
*
135-
* @param string $str query prefix
136-
*/
132+
* Set query prefix string.
133+
* @param string $str query prefix
134+
*/
137135
public function setStart($str){
138136
$this->queryStart = $str;
139137
}
140138

141139
/**
142-
* Set query suffix string.
143-
*
144-
* @param string $str query suffix
145-
*/
140+
* Set query suffix string.
141+
* @param string $str query suffix
142+
*/
146143
public function setEnd($str){
147144
$this->queryEnd = $str;
148145
}
149146

150147
/**
151-
* Split search query value by space.
152-
*/
148+
* Split search query value by space.
149+
*/
153150
public function split(){
154151
if(strpos($this->searchQuery, " ") !== false) {
155152
$this->searchQuery = explode(" ", $this->searchQuery);
@@ -159,11 +156,10 @@ public function split(){
159156
}
160157

161158
/**
162-
* Create SQL query from the specified pattern.
163-
*
164-
* @param string $value query value
165-
* @return string query
166-
*/
159+
* Create SQL query from the specified pattern.
160+
* @param string $value query value
161+
* @return string query
162+
*/
167163

168164
private function format($value) {
169165
$queryString = "";
@@ -174,19 +170,26 @@ private function format($value) {
174170
return $queryString;
175171
}
176172

173+
/**
174+
* Builds SQL search query.
175+
* @return string query
176+
*/
177177
private function buildQuery(){
178178
return rtrim($this->format($this->searchQuery) , " {$this->queryEnd} ");
179179
}
180180

181+
/**
182+
* Builds SQL search query array.
183+
* @return array queries
184+
*/
181185
private function buildArrayQuery($i = 0){
182186
return rtrim($this->format($this->searchQuery[$i]) , " {$this->queryEnd} ");;
183187
}
184188

185189
/**
186-
* Determine which search method to use while creating query.
187-
*
188-
* @return string SQL query
189-
*/
190+
* Determine which search method to use while creating query.
191+
* @return string SQL query
192+
*/
190193
private function buildSQL(){
191194
$sql = "";
192195
if(!empty($this->paramTags)){
@@ -215,10 +218,9 @@ private function buildSQL(){
215218
}
216219

217220
/**
218-
* Execute search query.
219-
*
220-
* @return string SQL query
221-
*/
221+
* Execute search query.
222+
* @return string SQL query
223+
*/
222224
public function getQuery(){
223225
if (!empty($this->searchQuery)){
224226
if (!empty($this->searchQuery)){
@@ -228,17 +230,17 @@ public function getQuery(){
228230
$this->setStart(self::LIKE);
229231
$this->setEnd(self::OR);
230232
break;
231-
233+
232234
case self::AND:
233235
$this->setStart(self::LIKE);
234236
$this->setEnd(self::AND);
235237
break;
236-
238+
237239
case self::NAND:
238240
$this->setStart(self::NOT_LIKE);
239241
$this->setEnd(self::AND);
240242
break;
241-
243+
242244
case self::NOR:
243245
$this->setStart(self::NOT_LIKE);
244246
$this->setEnd(self::OR);

0 commit comments

Comments
 (0)