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

3
在Stack阅读了一些帖子和推荐给我在线上的材料后,MVC模式是相当开放解释的,所以请不要用另一种解释回答。谢谢!
现在我即将完成自己的PHP MVC设计,有两种可能的方法来继续处理视图。
首先,我的控制器目前相当简单,不包含任何类,只是从合适的模型中调用公共方法,并呈现适当的视图。
视图根据需要包含,因此对象通过构造函数对其可用,包括所有方法(如删除/更新等)。
我的第一个选择是在视图中使用像这样的方式获取数据:
foreach($object->fetchData() as $data)  

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

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

// view
foreach($featched_data as $data)

我不太喜欢这样,因为看起来很凌乱和不必要。
既然我的所有关键方法都可以供查看,这会被视为一个问题吗?
所以这里的问题是:我是否保持原状,并在MODEL中创建新的渲染数据方法(如上所述),还是可以在构造函数中创建一个类,将模型扩展到其中,并保护模型中的关键函数,然后在CONSTRCUTOR中创建只读公共方法?
谢谢!

1
投票迁移到http://programmers.stackexchange.com/,因为它涉及软件设计概念而不是解决特定的编码问题。 - Jürgen Thelen
1个回答

0
我会在构造函数中创建一个类。扩展模型不仅是更安全的方法,而且还可以最小化视图中调用函数的次数。我假设你会有几个视图,在每个视图中每次调用方法函数比获取构造函数数据要容易得多。
您可以向控制器添加类,这些类将调用方法函数并直接将数据传递到视图中,而不是使您的构造函数或引导程序混乱不堪。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接