Как правило, рамки MVC имеют структуру, которая выглядит примерно так:
/models
/views
/controllers
/utils
Однако в наборе веб-приложений я решил, что объединение всех моделей, представлений и контроллеров, вероятно, не будет лучшим для ясности, если я не рассмотрю систему как одно приложение вместо набора приложений. Однако некоторые вещи связывают каждое «приложение» вместе, например, понятие пользователей и ролей пользователей.
Итак, у меня есть три возможных решения:
(1) Делайте то, что я на самом деле не хочу, и держите каждую модель, представление и контроллер вместе, независимо от того, к какому приложению они принадлежат. Это рассматривает пакет как одно приложение, так как они связаны между собой несколькими общими потоками, включая пользователей.
(2) Группировать код по приложению.
/app1
/models
/views
/controllers
/utils
/app2
/models
/views
/controllers
/utils
(3) Сгруппируйте код по типу, чтобы код утилиты был общим для всех приложений.
/models
/app1
/app2
/views
/app1
/app2
/controllers
/app1
/app2
/utils
Есть ли вариант, который я пропустил? Что будет наиболее логичной схемой для будущих разработчиков? Я лично предпочитаю 2 и 3, но, возможно, большинство людей ожидают 1.