Я согласен с вашей точкой зрения, но мы должны учитывать размер проекта.Например, в одном крупном проекте я обычно командую им как таблицы контроллера <=> services <=> моделей <=>.
- Таблицы: запустить sql (CURD)
- Модели: таблицы вызовов завершают одну функцию (например, после получения статьи также необходимо обновить время просмотра)
- Услуги: модели вызовов завершают одну функцию (например, оплата)
- Контроллеры: средство проверки ввода / разрешений, затем вызовсервис заканчивает его.
Конечно, если в одном простом блоге мы можем делать все в контроллерах.
И та же идея для просмотра, может полная страница, может группировать компоненты как одну страницу,и компонент может также иметь детский.