symfony service Сервис -- что это в symfony
Primary tabs
Сервис -- на практике какой-то программный объект (пользовательский или предоставляемый бандлом как готовое решение каких-то задач), обычно находится в т.н. "контейнере сервисов"
При каждом запуске приложения, генерируется множество сервисов (например, session, doctrine, templating). Вызывая сервисы в контроллере, вы можете использовать методы их классов.
Что выносить в сервис?
Сервис - это такая рабочая бригада. Она призвана выполнять всю чёрную работу реализовывать непосредственный функционал, например, отправка писем, получение данных, изменение данных, подсчёт чего-то, создание сложных выборок.
Иногда на помощь сервисам в этом приходят Репозитории - кладовщики. Им сервисы делигируют работу с БД (получение данных и сохранение изменённых/новых данных). Чаще всего, репозитории вызываются уже из сервисов, и, кстати, механизм их вызова такаой же, т.к. в symfony4 и репозитории, и даже контроллеры ведут себя как сервисы - автозагружаются.
Контроллер - это вахтёр. В идеале он занимается только:
- Получением входящих данных от клиента (Request)
- Вызовом сервисов (которые реализуют необходимый функционал)
- Отдачей данных клиенту (Response)
Могут возникать такие ошибки
Примеры работы с сервисами
- Log in to post comments
- 4311 reads