【发布时间】:2025-12-08 19:55:02
【问题描述】:
随着 CMS (PHP/MySQL) 越来越大,其代码更难维护,我正在考虑应用 MVC 模型以使其更易于维护和透明。我一直在追赶这个主题,我想我已经弄清楚了,除了视图部分。到目前为止,这是我的想法:
index => 控制器 模型
控制器 => 视图
充当主控制器(路由器)并根据 URL 中的参数创建控制器类的实例的 index.php。控制器类与模型类对话,以更新和检索数据库中的信息。之后,控制器确保显示视图(以模板的形式)并接收处理后的数据以进行显示。不过……
想法是将所有逻辑从视图转移到控制器,对吗?或者至少远离视图——以防止胖/瘦控制器/模型讨论。但无论我怎么看,我仍然需要一些动态视图,这也需要 一些 逻辑。例如,根据用户级别和权限(更新、更新/删除等)为某些用户显示某些选项。所以这将归结为 if/else 语句和类似的东西。这个可以吗?如果是这样,这种“简单”逻辑有多少是“允许的”?我的看法是,不同的模板开始变得更有意义(例如profile_view 和profile_edit)。
另一个简单的例子。假设一个用户可以看到 10 个配置文件字段中的 5 个,而另一个用户可以看到 10/10。我是否应该通过控制器检索所有 10 个字段的所有信息,并在视图中确定是否显示它?或者将这些类型的决策也移至控制器,并检索 5 或 10 个字段的信息,并根据已传递的信息仅显示视图中的可用字段?因为在许多情况下,拥有所有数据并忽略其中一些数据要容易得多,而不是不知道可用的数据并一直检查它。
【问题讨论】: