PHP MVC - 从模型或控制器调用视图函数?

时间:2012-08-01 13:43:39

标签: php model-view-controller

在阅读了Stack上的一些帖子,以及在线推荐给我的一些资料后,MVC模式对解释非常开放,所以请不要回答另一个解释。谢谢!

我现在已经到了设计我自己的PHP MVC的末尾,并且有两种可能的方式来推进这些观点。

但首先,我的控制器目前非常笨,不包含任何类,只是从合适的模型调用公共方法,并呈现适当的视图。

根据需要包含视图,因此通过构造函数以及所有方法(包括删除/更新等),对象可以自然地使用它们。

我的第一个选择是在视图中使用类似的东西获取数据

foreach($object->fetchData() as $data)  

然后循环结果。然而,有些人不同意这一点,并建议从视图中排除这些方法。相反,我建议将其分配给构造函数中的变量,然后在视图中使用此变量

//constructor
$fetched_data = $object->fetchData()

// view
foreach($featched_data as $data)

我不太喜欢这个,因为它接缝杂乱而且没必要。

我的所有关键方法都可供视图使用,这可能会被视为问题吗?

所以这就是问题所在。我是否保持原样,并在MODEL中创建用于渲染数据的新方法(如上所述)或者我可以在构造函数中创建一个类,将模型扩展到它中,保护模型中的关键函数,然后创建我的只读CONSTRCUTOR中的公共方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

我会在构造函数中创建一个类。扩展模型不仅是一种更安全的方法,而且还可以最小化视图中函数的调用。我假设您将拥有多个视图,每次在每个视图中访问构造函数数据都比调用方法函数容易得多。

您可以向控制器添加类,这些类将调用方法函数并将数据直接传递到视图中,而不是聚集构造函数或引导程序。

相关问题