| Conditions | 31 |
| Paths | 2 |
| Total Lines | 50 |
| Code Lines | 43 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 340 | public function where($field, $operator, $value = null) |
||
| 341 | { |
||
| 342 | if (is_null($value)) { |
||
| 343 | $value = $operator; |
||
| 344 | $operator = '='; |
||
| 345 | } |
||
| 346 | |||
| 347 | return $this->filter(function ($data) use ($field, $operator, $value) { |
||
| 348 | if (strpos($field, '.')) { |
||
| 349 | list($field, $relation) = explode('.', $field); |
||
| 350 | |||
| 351 | $result = isset($data[$field][$relation]) ? $data[$field][$relation] : null; |
||
| 352 | } else { |
||
| 353 | $result = isset($data[$field]) ? $data[$field] : null; |
||
| 354 | } |
||
| 355 | |||
| 356 | switch ($operator) { |
||
| 357 | case '===': |
||
|
1 ignored issue
–
show
|
|||
| 358 | return $result === $value; |
||
| 359 | case '!==': |
||
|
1 ignored issue
–
show
|
|||
| 360 | return $result !== $value; |
||
| 361 | case '!=': |
||
|
1 ignored issue
–
show
|
|||
| 362 | case '<>': |
||
|
1 ignored issue
–
show
|
|||
| 363 | return $result != $value; |
||
| 364 | case '>': |
||
|
1 ignored issue
–
show
|
|||
| 365 | return $result > $value; |
||
| 366 | case '>=': |
||
|
1 ignored issue
–
show
|
|||
| 367 | return $result >= $value; |
||
| 368 | case '<': |
||
|
1 ignored issue
–
show
|
|||
| 369 | return $result < $value; |
||
| 370 | case '<=': |
||
|
1 ignored issue
–
show
|
|||
| 371 | return $result <= $value; |
||
| 372 | case 'like': |
||
|
1 ignored issue
–
show
|
|||
| 373 | return is_string($result) && false !== strpos($result, $value); |
||
| 374 | case 'not like': |
||
|
1 ignored issue
–
show
|
|||
| 375 | return is_string($result) && false === strpos($result, $value); |
||
| 376 | case 'in': |
||
|
1 ignored issue
–
show
|
|||
| 377 | return is_scalar($result) && in_array($result, $value, true); |
||
| 378 | case 'not in': |
||
|
1 ignored issue
–
show
|
|||
| 379 | return is_scalar($result) && !in_array($result, $value, true); |
||
| 380 | case 'between': |
||
|
1 ignored issue
–
show
|
|||
| 381 | list($min, $max) = is_string($value) ? explode(',', $value) : $value; |
||
| 382 | return is_scalar($result) && $result >= $min && $result <= $max; |
||
| 383 | case 'not between': |
||
|
1 ignored issue
–
show
|
|||
| 384 | list($min, $max) = is_string($value) ? explode(',', $value) : $value; |
||
| 385 | return is_scalar($result) && $result > $max || $result < $min; |
||
| 386 | case '==': |
||
|
1 ignored issue
–
show
|
|||
| 387 | case '=': |
||
|
1 ignored issue
–
show
|
|||
| 388 | default: |
||
|
1 ignored issue
–
show
|
|||
| 389 | return $result == $value; |
||
| 390 | } |
||
| 553 |