Где кончается контроллер и начинается сервис?

121
07 апреля 2021, 05:20

Никак не могу понять, где кончается работа контроллера и начинается сервис (и сервис ли) ?

Сразу распишу варианты сложных для меня сценариев:

1) Нужно вывести статьи в зависимости от роли пользователя. Админу все, пользователю только свои. И тут у меня ступор: разве в контроллере может быть логика по выбору метода в зависимости от Роли? Разве сервис должен работать с системой авторизации конкретного приложения?

2) Сервис выдает какие либо данные, метод один. Этот метод вызывается в разных частях приложения и данные по разному форматируются перед выводом на экран. Где должно происходить форматирование? В контроллере, а разве это не какая-никакая логика? Или сервис? Но разве сервису не должно быть по барабану на форматирование, его задача отдать обработанные данные.

3.1) Сервис поддерживает шаблон проектирование обсервер. Значит мы должны перед его использованием загрузить его наблюдателями, причем явно уровнем выше. Но тогда это уже контроллер, и получается логика в контроллере.

3.2) По сути любой сервис может быть подвергнут какому нибудь шаблону проектирования: декоратор, стратегия и т.д. И всегда это будет уровень выше сервиса - контроллер. Разве правильно делать это в контроллере?

READ ALSO
Замена тега <a> на <p> или <span> с помощью JS или PHP

Замена тега <a> на <p> или <span> с помощью JS или PHP

Ситуация: создал шаблон страницы на phpНа ней реализовано навигационное меню, (циклом вытягивает необходимые параметры из БД + если id страницы...

104
Поиск по файлам на PHP [закрыт]

Поиск по файлам на PHP [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

91
Почему комментарии не отображаются на конкретной странице, а на всех?

Почему комментарии не отображаются на конкретной странице, а на всех?

Комментарии на сайте отображаются благодаря следующему коду:

110
export import laravel

export import laravel

Не могу импортировать файл взятый с экспорта csvПроблема в кодировке

77