使用HMVC(Kohana)失去知识

时间:2012-02-20 09:25:33

标签: php kohana hmvc

我对Kohana的HMVC模型有疑问。我非常喜欢将内容分离为相同原则(MVC)中的组件以进行扩展和更轻松创建api的想法。

虽然有一些缺点,但我正在经历失去知识。

例如,我可以使用名为新闻类别的组件。最重要的是站点控制器,它们只委派完整的请求,并通过这些组件收集网站模板的所有html /数据。

          Site controller
           /             \
          /               \
   categories              news

当我想要侧边栏的所有类别时,我可以调用:/ categories / list。当我想要一个新闻时我可以打电话/新闻/ ID。两者都返回html。

如果我有一个newsreadon站点控制器,主要任务是显示新闻文章,该控制器将获取侧栏的所有类别。接下来它将获取新闻项目。

                Newsreadon
               /          \
              /            \
 categories/list (html)    news/<id>   (html)

当我显示网站模板中的所有元素时,我想知道html标题标签的新闻的“标题”,但我不知道因为我返回了html。

我觉得有多种解决方案:

  1. 将标题存储在某个注册表中(但如果我将组件扩展到其他服务器并使用HTTP,则会丢失)。所以鉴于缩放,没有好的选择。
  2. 使用'title'和'html'字段返回json。
  3. 读出html的某些部分,例如h2作为标题
  4. 解决方案2似乎是最不讨厌的,并保持无国籍通信。

    我真的想知道如何以优雅的方式解决这个问题?我错过了''解决方案吗?

    编辑: 有趣的阅​​读以了解kohana的HMVC: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

2 个答案:

答案 0 :(得分:0)

  

如果我有一个newsreadon站点控制器,主要任务是显示一个   新闻文章......

如果此控制器的目的是显示新闻文章,那么我不明白是否需要额外的控制器。考虑更改您的应用程序设计,也许Newsreadon扩展控制器以显示新闻文章。

答案 1 :(得分:-1)

由于您使用news/<id>显示新闻,因此可能是父控制器知道新闻的ID。从那里,只需从你的模型中获取新闻标题。这将是正确的方法。尝试从子请求中提取一些数据将使您的应用程序更紧密地耦合,并且从长远来看更难以维护。