контроллер контролирует. Грубо говоря смысл контроллера в том что бы сконвертить http запрос в действие приложения. Контроллеры не должны прнимать решений сами (делигируют кому-то, например какой denyAccessUnlessGranted
). Есть так же argument value resolvers которые позволяют какие-то общие вещи по работе с данными запросов выносить выше. Удобно для мэппинга структур каких и т.д.
В случае кто должен непосредственно загрузку делать - сервисы. Контроллер опять же ленивый менеджер и все делегировать должен.
Контроллеры, которые просто перекладывают запросы в сервисы в симфе нафик не нужны. Тут достаточно мощный фронтконтроллер, который позволяет обращаться напрямик к сервисам.
Роутинг + аргумент резолвер и вуаля, половина гетовых контроллеров превращается в метод репы. Остальное в другие сервисы. А контроллеры как точки входа становятся просто бесполезными