好的,我们有一个页面。一个非常简单的。我们称之为page.php
。它将有一个控制器和一个视图。控制器将只捕获一些GET变量并在该页面的开头打印出来,该视图将显示一个页脚和一个包含来自控制器的GET变量的段落。
现在让我们假设我们想要添加一个日历。你认为这很好,也很容易。好吧,对我来说似乎根本没有。
日历由<table><tbody>X</tbody></table>
组成,它是纯HTML和将创建的逻辑PHP脚本(将填充X
)(基于当前的time()
标记日期和时间)月份日期和数字。
现在我遇到了一个道德问题:我如何划分该日历的逻辑和视图?
将创建日期的代码块将打印<td>
和<tr>
来详细说明time()
。但如果逻辑打印HTML不是很糟糕吗?我是这么认为的,因为你松散地认为这是MVC模式中典型的“逻辑和视图划分”。
同时,如果我们将所有日历逻辑带到控制器,我们只是发送到视图和日期数组(坐标X和Y告诉他将月份的第一个日期放在哪里)视图仍然需要详细说明数组,并且也将成为逻辑。
我怎么能从这个日历中真正区分逻辑和视图?
答案 0 :(得分:4)
简单地在视图中迭代数组是完全正确的,并且不违反MVC模式。逻辑发生在填充数组的控制器中。更好的方法可能是将逻辑放入名为Calendar.php的模型中,并在控制器中初始化它以将其传递给视图。
答案 1 :(得分:-1)
你可以将逻辑代码放在php文件中,并将结果分配给将在视图文件中显示的变量(例如数组)
在视图文件中,您可以轻松回显变量并放置html标记。