2017-05-13 7 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サーバーを検索バックエンドとして使用しますが、プロジェクトが成長する場合はSphinxSearchまたはElasticSearchなどに移行し、別の抽象化を行うと移行が容易になります。

+0

'query-builder'あなたはデザインパターンを意味していますか? – John

+0

Query Builderはパターンではなく、ライブラリーです。 –

+0

私はLaravelを使用しています。ライブラリを使用しないコードを再構築したい – John

関連する問題