【发布时间】:2012-02-20 09:25:33
【问题描述】:
我对 Kohana 的 HMVC 模型有疑问。我真的很喜欢在相同的原则 (MVC) 中将东西分离为组件的想法,以便扩展和更轻松地创建 api。
虽然我遇到了一些缺点,比如知识的丧失。
例如,我可以有名为 news 和 categories 的组件。最重要的是站点控制器,它们只是委托完整的请求并通过这些组件收集站点模板的所有 html/数据。
Site controller
/ \
/ \
categories news
当我想要边栏的所有类别时,我可以调用:/categories/list。当我想要一个新闻项目时,我可以调用 /news/ID。两者都返回 html。
如果我有一个主要任务是显示新闻文章的新闻阅读站点控制器,该控制器将获取侧边栏的所有类别。接下来它将获取新闻项目。
Newsreadon
/ \
/ \
categories/list (html) news/<id> (html)
当我在站点模板中显示所有元素时,我想知道 html 标题标签的新闻的“标题”,但我不知道,因为我返回 html。
我觉得有多种解决方案:
- 在某些注册表中存储标题(但如果我将组件扩展到其他服务器并使用 HTTP,则会丢失)。所以考虑到缩放,没有好的选择。
- 返回带有 'title' 和 'html' 字段的 json。
- 读出 html 的某些部分,例如标题的 h2
解决方案 2 似乎是最不讨厌的,并且可以保持无状态通信的完整性。
我真的很想知道你将如何以优雅的方式解决这个问题?我错过了“解决方案”吗?
编辑: 有趣的阅读以了解 kohana 的 HMVC: http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/
【问题讨论】: