PHP MVC - 从模型或 Controller 调用 View 函数?

标签 php model-view-controller

在阅读了 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/

相关文章:

javascript - 如何将 javascript 集成到 phalcon php 的 .volt 模板引擎

ios - 我应该把我的有限状态机放在 Objective C 的什么地方?

MVC应用程序中的安全性和访问控制

python - Django 模型 ForeignKey 返回 ID

javascript - 从生成的进程访问 Sails Controller

php - 如何记录用户点击的内容

php - GWT TinyMCE拼写检查

php - 如何从数据库中列出用户类型并允许从管理面板中进行选择?

php - 将 PHP 版本更改为 8.1,但 WordPress 认为我们正在使用版本 7.4?

ruby-on-rails - 在 Rails 中组织站点导航操作