通常,MVC 框架的结构类似于:
/models
/views
/controllers
/utils
但是,在 Web 应用程序套件中,我认为将所有模型、视图和控制器聚集在一起可能不是为了清晰起见最好的方法,除非我将系统视为一个应用程序而不是应用程序套件。但是,有些东西将每个“应用程序”联系在一起,例如用户和用户角色的概念。
所以我有三种可能的解决方案:
(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。