如何编写搜索类?

时间:2017-05-13 23:53:22

标签: php design-patterns architecture

我尝试编写OOP类,通过一些传入的参数进行搜索。 我可以按位置,类别,名称和其他东西进行搜索。 如何让这门课更专业,抽象?

现在我在类中只有一个接受请求的方法:

private function search($request)
{
    // TODO
}

$ request可以包含上述任何参数。

我不喜欢这样做:

if($request->category){

} else if($request->location){

} else if($request->name){

} ... etc

1 个答案:

答案 0 :(得分:0)

你需要做的是获得一个查询构建器(使它或我们从packagist中存在),因为你最终会想要通过多个参数进行搜索。

对于代码的一般组织,我实际上更像是一个服务,即使用某种类型的table data gateway作为数据源。因为我假设,最初您将使用SQL服务器作为搜索后端,但如果项目增长,您应该将其迁移到类似SphinxSearchElasticSearch的内容,并且使用单独的抽象将使迁移更容易。