Я работаю над новым проектом, использующим symfony4, и, поскольку я не очень разбираюсь в структуре модели, я думаю, что пошел неправильным путем, но не могу понять, как исправить это чистым способом.
У меня другой контроллер:
У меня есть еще несколько, но не совсем актуальные, как его простые действия.
-> Я полагаю, что если мне нужно вызвать столько других контроллеров, это неправильный способ сделать это?
-> Или я просто определяю свои контроллеры как службу?
Я согласен. Ваши контроллеры следует рассматривать как конечные точки для запросов http / api от ваших пользователей. Имейте бизнес-логику, которую вы хотите повторно использовать в моделях / сервисах, которые вы можете вызывать с любого контроллера.
Подробнее про тонкие контроллеры здесь symfony.com/doc/current/best_practices/controllers.html
Хорошо, тогда я перенесу все в сервис! Мне также нужно много параметров из недавно созданной службы (токен / секрет пользователя oauth, ключ потребителя ... Поскольку он устанавливается только один раз при запуске проекта, я хотел сохранить его service.yaml, я сохраню его там, добавив доступ к этой информации в службу или перенос данных непосредственно в службу?






Я воспользовался услугами, как было предложено, и расширил одну услугу на другую, спасибо.
Вместо того, чтобы иметь кучу логики в ваших контроллерах, создайте службы для обработки бизнес-логики и просто позвольте контроллеру вызывать необходимые службы. Затем вы можете вызывать те же службы с любого контроллера. Позвольте контроллеру управлять только запросом, например получать данные из запроса, вызывать правильные службы и затем возвращать соответствующий результат. На мой взгляд, если контроллеру необходимо вызвать другой контроллер для выполнения работы, вы, вероятно, вложили слишком много логики в свои контроллеры (конечно, есть исключения, но, на мой взгляд, они редки).