【问题标题】:MVC for a CMS? What about themes?用于 CMS 的 MVC?主题呢?
【发布时间】:2009-07-25 22:08:28
【问题描述】:

我了解什么是 MVC 和 CMS。我了解 MVC 模式以及 CMS 应该如何工作。但我对主题和模式有疑问。

例子:

在服务器上安装 CMS 后,我想更改我的主页。我想显示一些额外的数据。我更改了主页模板并添加了一个函数调用以从数据库中提取数据。我的新数据将显示在我的主页上。 :)

但是当我这样做时,我打破了 MVC 模式,因为在这种情况下,View 决定应该从 DB 读取哪些数据以显示在我的主页上。

那么...是 CMS 的 MVC 吗?或者也许它不应该是一个清晰的 MVC 模式来处理这样的情况?也许我应该忘记模式?我很困惑……

PS 我猜,Wordpress 不是基于 MVC 模式构建的?

【问题讨论】:

  • 模式不必总是纯粹的。例如,在 ASP.NET MVC 中,已知的杂质与子控制器和 RenderAction 帮助器有关。做有效的事。更具体地说,做最适合您的特定应用的事情。
  • 我正在考虑在这种情况下使用 RenderAction。谢谢。

标签: model-view-controller content-management-system design-patterns


【解决方案1】:

像 MVC 这样的设计模式旨在将您的显示代码与业务逻辑等分离。这样可以更轻松地更改任何部分而不影响任何其他部分(例如,更改模板而不必担心意外更改任何业务逻辑)。

您的情况听起来像您添加的功能是简单的视图逻辑?最好将函数放入Helper 并让助手通过Model 调用数据。然后,在您看来,只需调用 Helper。

在伪代码中:

助手

function get_whatever_data () {
    // get the actual data from the model
    return SomeModel.get_the_data_thats_needed_here()
}

查看

<div id="some-id">
    <? print get_whatever_data() ?>
</div>

【讨论】:

    猜你喜欢
    • 2020-07-31
    • 2011-11-17
    • 1970-01-01
    • 2011-07-26
    • 2018-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    相关资源
    最近更新 更多