Организация Symfony

Я работаю над новым проектом, использующим symfony4, и, поскольку я не очень разбираюсь в структуре модели, я думаю, что пошел неправильным путем, но не могу понять, как исправить это чистым способом.

У меня другой контроллер:

  • SmugmugController (я использую его для взаимодействия с онлайн-API, получения всей моей информации об изображениях и прочем, а также для загрузки изображений с URL-адреса с действием или функцией).
  • PrestaController (я использую его для взаимодействия с БД, получения моих следующих событий, отображения списка событий, а также некоторых функций для получения данных.
  • DropBoxController (это сложно, потому что мне нужно иметь возможность вызывать некоторые действия, а также много функций в других контроллерах. Основное действие в Dropbox - получение данных в presta DB (PrestaController), загрузка изображений (SmugmugController), обновить пользовательскую БД (UserController)).

У меня есть еще несколько, но не совсем актуальные, как его простые действия.

-> Я полагаю, что если мне нужно вызвать столько других контроллеров, это неправильный способ сделать это?

-> Или я просто определяю свои контроллеры как службу?

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

Magnus Eriksson 02.06.2018 19:37

Я согласен. Ваши контроллеры следует рассматривать как конечные точки для запросов http / api от ваших пользователей. Имейте бизнес-логику, которую вы хотите повторно использовать в моделях / сервисах, которые вы можете вызывать с любого контроллера.

JimL 02.06.2018 19:43

Подробнее про тонкие контроллеры здесь symfony.com/doc/current/best_practices/controllers.html

JimL 02.06.2018 19:46

Хорошо, тогда я перенесу все в сервис! Мне также нужно много параметров из недавно созданной службы (токен / секрет пользователя oauth, ключ потребителя ... Поскольку он устанавливается только один раз при запуске проекта, я хотел сохранить его service.yaml, я сохраню его там, добавив доступ к этой информации в службу или перенос данных непосредственно в службу?

Antoine Nedelec 02.06.2018 19:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я воспользовался услугами, как было предложено, и расширил одну услугу на другую, спасибо.

Другие вопросы по теме