通常,MVC frameeworks的结构类似于:
/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.
2是一个好的开始.您应该考虑使用一个公共文件夹,您可以在其中存储应用程序套件中所有应用程序使用的任何常见模型,视图和工具.
/app1 /models /views /controllers /utils /app2 /models /views /controllers /utils /common /models /views /utils
看起来2)将是您最好的选择,假设您想要一些应用程序分离.对于所有应用程序中的共享资源,您还可以在"/ app#"级别拥有"/ common"文件夹...就像共享实用程序类或其他任何内容一样.