/** * @param string $input * * @return Query */ public function parse($input) { $queries = new AndQuery(); foreach (explode(',', $input) as $query) { list($property, $value) = explode('=', $query); $queries->add(new Equal($property, $value)); } return $queries; }
/** * @param string $input * * @return Query */ public function parse($input) { $queries = new AndQuery(); foreach (explode(',', $input) as $query) { if (strpos($query, '>=') !== false) { list($property, $value) = explode('>=', $query); $queries->add(new Expression\GreaterThanEqual($property, $value)); } elseif (strpos($query, '<=') !== false) { list($property, $value) = explode('<=', $query); $queries->add(new Expression\LesserThanEqual($property, $value)); } elseif (strpos($query, '>') !== false) { list($property, $value) = explode('>', $query); $queries->add(new Expression\GreaterThan($property, $value)); } elseif (strpos($query, '<') !== false) { list($property, $value) = explode('<', $query); $queries->add(new Expression\LesserThan($property, $value)); } elseif (strpos($query, '=') !== false) { list($property, $value) = explode('=', $query); $queries->add(new Expression\Equal($property, $value)); } elseif (strpos($query, '!=') !== false) { list($property, $value) = explode('!=', $query); $queries->add(new Expression\NotEqual($property, $value)); } } return $queries; }