3

在阅读了一些关于 Stack 的帖子以及在线向我推荐的一些资料后,MVC 模式的解释非常开放,所以请不要用其他解释来回答。谢谢!

我现在已经完成了设计自己的 PHP MVC 的工作,并且有两种可能的方式来推进视图。

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

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

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

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

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

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

// view
foreach($featched_data as $data)

我不太喜欢这个,因为它看起来很乱而且没有必要。

我的所有关键方法都可用于视图,这是否会被视为一个问题?

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

谢谢!

4

1 回答 1

0

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

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

于 2012-08-10T09:41:28.860 回答