У меня есть вопрос о лучших практиках Symfony 2. Извините, если он немного расплывчатый и субъективный. Думаю, я могу подытожить свой вопрос следующим образом:
"Являются ли хранилища всегда правильными для запросов?".
Сейчас я помещаю большинство своих доктринных запросов в репозитории сущностей. Большинство моих действий с контроллером выполняют типичные вещи, такие как запрос для сущности или коллекции сущностей, генерируют исключение или перенаправление в зависимости от результата этого, в противном случае обновляют одно или несколько объектов. Большинство действий сложнее, чем это можно сделать с помощью стандартных запросов → find, → findBy и т.д. Большинство из них требуют объединения. Когда запрос включает несколько объектов, иногда я не уверен, в каком репозитории он должен идти. Я предполагаю, что есть корневой объект запроса, но... иногда данные из объединенных объектов более важны и релевантны, поэтому он чувствует себя не так поместить его в корневой репозиторий сущностей.
Это работает нормально, но я, как правило, заканчиваю тем же самым, но немного разными запросами в своих репозиториях. Придумывание имен и отслеживание того, что каждый из них делает, может стать запутанным и утомительным. Большинство этих запросов используются только одним или двумя (часто редко используемыми) действиями контроллера в одном контроллере. Я чувствую, что я загромождал свои репозитории со слишком специализированными, редко используемыми вещами.
Кажется, что все, кроме самых простых действий, должны быть инкапсулированы в объект или службу. Итак, я начал выполнять множество своих запросов непосредственно в службе, а не в репозитории. Легко смотреть на действия все в одном месте. Это хорошая практика?