Conversation
|
|
||
| // paginator | ||
| $em = $this->get('doctrine.orm.entity_manager'); | ||
| $dql = 'SELECT p |
There was a problem hiding this comment.
Tento blok DQL kódu je takmer totožný s ProductRepository->findByCategory() s tým rozdielom, že KnpPaginatorBundle to vyžaduje bez getResult() /takže som tu nemohol priamo použiť túto metódu/.
Vznikla mi tu však duplicita, tak by ma zaujímalo, či je nejaký best practice ako to presunúť do ProductRepository s tým aby som mal k dispozícií metódu bez a zároveň s getResult(). Samozrejme, napadajú ma možnosti ako to je možné spraviť, ale skôr ma zaujíma to, čo je osvedčené z praxe.
Vďaka.
There was a problem hiding this comment.
Uvažuješ správně, určitě pokud je jeden kód duplikovaný, tak má cenu ho dát dohromady. Můžeš si tedy vytvořit metodu, která ten dotaz staví a ve findByCategory vrátit getResult nad jejím výsledkem
There was a problem hiding this comment.
Jo souhlas. Když je podíváš na ukázkové řešní v masteru, tak podobný problém jsem tam řešil já. Může to být ukázkové řešení. Nicméně nelíbí se mi, protože je tam porušený jeden z pricipů SOLID. Ale to vysvětlím.
|
|
||
| // paginator | ||
| $em = $this->get('doctrine.orm.entity_manager'); | ||
| $dql = 'SELECT p |
There was a problem hiding this comment.
Uvažuješ správně, určitě pokud je jeden kód duplikovaný, tak má cenu ho dát dohromady. Můžeš si tedy vytvořit metodu, která ten dotaz staví a ve findByCategory vrátit getResult nad jejím výsledkem
Jozef Liška