好的,我们有一个页面。非常简单。我们叫它page.php
。它将有一个控制器和一个视图。控制器将捕获一些GET变量并在该页的开头打印出来,视图将显示一个页眉,一个页脚和一个段落,其中将包含来自控制器的GET变量。
现在假设我们想要添加一个日历。你认为这很好很容易。嗯,在我看来一点也不重要。
日历由纯HTML的<table><tbody>X</tbody></table>
和逻辑PHP脚本(将填充X
)组成,该脚本将创建(基于当前日期和时间的time()
戳)月份日期和数字。
现在我遇到了一个伦理问题:我如何区分逻辑和日历的观点?
创建日期的代码块将打印<td>
和<tr>
,详细说明time()
。但是如果逻辑打印HTML不是很糟糕吗?我认为是这样的,因为你轻松地想到了所谓的"逻辑和视图的划分"这是典型的MVC模式。
同时,如果我们把所有的日历逻辑带到控制器,我们只是发送给视图和日期数组(用坐标X和Y告诉他把这个月的第一个日期放在哪里),视图仍然需要精心设计数组,也将成为逻辑。
我怎么能把这个日历的逻辑和观点分开呢?
在视图中简单地迭代数组是完全没有问题的,并且没有违反MVC模式。逻辑发生在您填充数组的控制器中。更好的方法可能是将逻辑放入名为Calendar.php的模型中,并在控制器中对其进行初始化,以便将其传递给视图。
你可以把逻辑代码放在PHP文件中,并将结果赋值给将显示在视图文件中的变量(例如数组)
在视图文件中,您可以轻松地回显变量并放置HTML标记。