for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace NwLaravel\Repositories\Criterias\Filters;
class FilterBetween implements FilterInterface
{
/**
* @var string
*/
protected $table;
* @var array
protected $columns;
protected $dates;
* Construct
*
* @param string $table
* @param array $columns
* @param array $dates
public function __construct($table, $columns, $dates)
$this->table = $table;
$this->columns = $columns;
$this->dates = $dates;
}
* Filter
* @param Query\Builder $query
* @param int|string $key
* @param mixed $value
* @return boolean
public function filter($query, $key, $value)
$table = $this->table;
$column = $key;
if (preg_match('/^([a-zA-Z0-9_\-]+)\.([a-zA-Z0-9_\-]+)/', $key, $matches)) {
$table = $matches[1];
$column = $matches[2];
if (preg_match('/^(.+)(_ini|_fim)$/', $column, $match) && in_array($match[1], $this->columns)) {
$field = $match[1];
$operator = ($match[2]=='_ini')? '>=' : '<=';
if (in_array($field, $this->dates)) {
$filterDate = new FilterDate($operator);
return $filterDate->filter($query, $table.'.'.$field, $value);
$query = $query->where($table.'.'.$field, $operator, $value);
$query
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
$myVar = 'Value'; $higher = false; if (rand(1, 6) > 3) { $higher = true; } else { $higher = false; }
Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.
$myVar
$higher
return true;
return false;
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.