在阅读了 Stack 上的一些帖子以及一些在线推荐给我的 Material 之后,MVC 模式的解释非常开放,所以请不要用其他解释来回答。谢谢!
我自己的 PHP MVC 设计即将结束,并且有两种可能的方法来推进 View 。
但首先,我的 Controller 目前非常笨,不包含任何类,只是从合适的模型调用公共(public)方法,并呈现合适的 View 。
View 在必要时被包括在内,因此自然地,对象可以通过构造函数以及所有方法(包括删除/更新等)对它们可用。
我的第一个选择是在 View 中使用类似这样的方法获取数据
foreach($object->fetchData() as $data)
然后循环遍历结果。然而有些人不同意这一点,并建议将此类方法排除在视野之外。相反,建议我将其分配给构造函数中的一个变量,然后在 View 中使用该变量
//constructor
$fetched_data = $object->fetchData()
// view
foreach($featched_data as $data)
我不太喜欢这个,因为它的接缝很乱而且没有必要。
我的所有关键方法都可用于 View ,这会被认为是一个问题吗?
那么问题来了。我是保持原样,并在 MODEL 中创建新方法来呈现数据(如上所述),还是我可以在构造函数中创建一个类,将模型扩展到其中,保护模型中的关键函数,然后创建我的只读 CONSTRCUTOR 中的公共(public)方法?
谢谢!
最佳答案
我会在构造函数中创建一个类。扩展模型不仅是一种更安全的方法,而且还可以最大限度地减少 View 中的函数调用。我假设您有多个 View ,访问构造函数数据比在每个 View 中每次都调用方法函数要容易得多。
您可以向您的 Controller 添加类,这些类将调用方法函数并将数据直接传递到 View 中,而不是将您的构造函数或 Bootstrap 集群化。
关于PHP MVC - 从模型或 Controller 调用 View 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11760622/