Model – это весь доменный слой (Domain Model). Доменный слой работает
только с доменной логикой. В доменный слой
входит не только модель Active Record, но и другие классы, например сервисы. В Yii2 принято называть моделью то, что наследуется от класса
Model. Но сами модели в действительности являются сущностями (Entity). Разберитесь с этим.
При таком понимании разделении в вашей Модели
должна быть логика только относящиеся к доменному слою. На примере
CRUD это
CUD. При этом раздел (модуль) должен работать только со своим модулем и не должен работать с другими модулями на прямую, но он может иметь слабую связь, например, через контроллеры.
Для чтения данных мы можем выделить
ReadModel. Она может выдавать данные в виде массивов которые получают из
SQL запросов,
QueryBuider или
AR. На примере
CRUD это
R. В итоге мы имеем чистый доменный слой, а другие слои могут быть связаны друг с другом в модулях.
Пример такой архитектуры можно посмотреть
тут.
Мои ответы на схожую тему:
1.
Архитектура приложения. Как сделать независимые модули (сервисы)?
2.
Смысл модулей в Yii2?