【发布时间】:2023-12-14 13:14:01
【问题描述】:
我正在尝试为基于 MVC 设计的系统找出类、方法、文件和文件夹的正确布局。
假设我们有一个页面。 页面是一个带有标题、文本和子菜单的简单页面。它还可以包括一个画廊(这在数据库和代码中都是一个单独的对象)。
-
我将拥有一个
PageDAO类,该类将具有所有与数据库相关的功能(它将扩展主要的DAO类,将包含通用数据库功能,如选择、保存、删除等) 我会有一个单独的 Page 类来定义这个对象的变量和非 db 相关函数
我将拥有 MVC 本身,
PageModel将在其中构造页面DAO类和页面类并构建内容,然后在控制器中处理并为视图做准备画廊将在 MVC 之外的一个单独的类中定义(比如说 libs 文件夹),它永远不会用作视图(我的意思是,我永远不会调用画廊页面本身)。页面模型将创建 Gallery 类,控制器将其放置在页面视图中
菜单类/功能将是更通用的功能(因为它适用于页面和类别,如果代码用于例如购物网站)并且也将在单独的区域中定义(可能是 libs 文件夹再次)。基于该功能的菜单设置将在模型中调用
以上意味着我将具有以下结构
基于标准 MVC 方法的模型、视图、控制器文件和文件夹
所有
DAO类的dao lib文件夹类如
Page、Menu、Gallery的lib文件夹
你觉得公平吗?我只是不想将代码分散到太多的类上,因为这意味着更多的“包含”和更多的对象调用。但也许这就是要走的路?到目前为止,我还没有使用太多的 MVC 方法,并且一直在保持文件相当紧凑。想了解最佳做法
【问题讨论】:
-
我认为您的方法没有普遍问题。不过,我建议专注于您方法的 OO 分解结构。
标签: php model-view-controller layout directory-structure