2017-05-13 67 views
-1

我嘗試編寫OOP類,它通過一些傳入參數進行搜索。 我可以通過位置,類別,名稱和其他東西進行搜索。 如何讓這個類更專業,抽象?如何編寫搜索類?

現在我在類只有一個方法,接受請求:

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

的$請求可以含有上述任何參數。

我不喜歡做的事:

if($request->category){ 

} else if($request->location){ 

} else if($request->name){ 

} ... etc 

回答

0

你需要做的就是讓一個查詢生成器(使其或者我們從packagist現有的),因爲你最終會希望通過以上的參數來搜索。

至於代碼的一般組織,我實際上更像是一種服務,即使用某種類型的table data gateway作爲數據源。因爲我認爲,最初你會使用SQL服務器作爲你的搜索後端,但是如果項目增長,你應該將它遷移到類似SphinxSearchElasticSearch的地方,並且單獨的抽象將會使遷移更容易。

+0

'查詢建設者'你的意思是設計模式? – John

+0

查詢構建器不是模式,而是庫。 –

+0

我使用Laravel。並且想重建不使用庫的代碼。 – John