我尝试编写OOP类,通过一些传入的参数进行搜索。 我可以按位置,类别,名称和其他东西进行搜索。 如何让这门课更专业,抽象?
现在我在类中只有一个接受请求的方法:
private function search($request)
{
// TODO
}
$ request可以包含上述任何参数。
我不喜欢这样做:
if($request->category){
} else if($request->location){
} else if($request->name){
} ... etc
答案 0 :(得分:0)
你需要做的是获得一个查询构建器(使它或我们从packagist中存在),因为你最终会想要通过多个参数进行搜索。
对于代码的一般组织,我实际上更像是一个服务,即使用某种类型的table data gateway作为数据源。因为我假设,最初您将使用SQL服务器作为搜索后端,但如果项目增长,您应该将其迁移到类似SphinxSearch或ElasticSearch的内容,并且使用单独的抽象将使迁移更容易。