/** * Transforms a string or an array to a query object. * * If query is empty, * * @param mixed $query * * @throws \Elastica\Exception\NotImplementedException * * @return self */ public static function create($query) { switch (true) { case $query instanceof self: return $query; case $query instanceof AbstractQuery: return new self($query); case $query instanceof AbstractFilter: $newQuery = new self(); $newQuery->setPostFilter($query); return $newQuery; case empty($query): return new self(new MatchAll()); case is_array($query): return new self($query); case is_string($query): return new self(new QueryString($query)); case $query instanceof AbstractSuggest: return new self(new Suggest($query)); case $query instanceof Suggest: return new self($query); } // TODO: Implement queries without throw new NotImplementedException(); }
/** * Transforms a string or an array to a query object. * * If query is empty, * * @param mixed $query * * @throws \Elastica\Exception\NotImplementedException * * @return self */ public static function create($query) { switch (true) { case $query instanceof self: return $query; case $query instanceof AbstractQuery: return new self($query); case $query instanceof AbstractFilter: trigger_error('Deprecated: Elastica\\Query::create() passing filter is deprecated. Create query and use setPostFilter with AbstractQuery instead.', E_USER_DEPRECATED); $newQuery = new self(); $newQuery->setPostFilter($query); return $newQuery; case empty($query): return new self(new MatchAll()); case is_array($query): return new self($query); case is_string($query): return new self(new QueryString($query)); case $query instanceof AbstractSuggest: return new self(new Suggest($query)); case $query instanceof Suggest: return new self($query); } // TODO: Implement queries without throw new NotImplementedException(); }