如何查看访问模型以获取特定输出文档类型的数据?

时间:2013-05-31 09:56:31

标签: php model-view-controller

欢迎,
我正在为自己的用法编写简单的Mvc框架,我遇到了这个问题。在我的框架中,我根据输出文档类型区分不同类型的视图。例如,我有htmlViewNews和xmlViewNews XML类型的视图只显示新闻列表作为XML文档。但HTML类型的视图除了显示新闻列表外,还应显示菜单,标签列表以及需要从模型中获取数据的许多不同内容。
我认为根据控制器中的视图类型执行操作是一个坏主意,因为它不是oop方式 但从视图直接访问模型是否可以?我想到了类似的东西:为所有类型的视图制作装饰器。防爆。 htmlViewFrame和xmlViewFrame可以直接访问模型,这些模型可以显示菜单等所有内容。 其他但类似的解决方案是为htmlViewNews制作htmlViewFrame基类 从mvc的角度来看是否可以? 第三种解决方案,可能是最好的,但也是最复杂的,是从视图发送有关菜单数据的信号。接收信号的主控制器将运行子控制器,该子控制器将访问模型并将数据发送回查看。但这样的事情是否值得复杂呢? 抱歉我的英语不好。

1 个答案:

答案 0 :(得分:-1)

我建议:

  1. 保留一个标志(例如URL部分,会话变量,cookie),告诉控制器/动作绘制哪个视图(html,xml,json等)。我假设您有行动可以决定绘制哪个视图。

  2. 应从较高的装饰器模式实体处理菜单。也许是“布局”或“MenuController”。

  3. 如果标签属于新闻文章的一部分,则应在操作内部进行处理。否则GOTO 2。

  4. 不允许视图直接访问模型:)