gpt4 book ai didi

php - 自定义 MVC,如何为 Controller 实现渲染功能,以便 View 可以访问 Controller 设置的变量

转载 作者:可可西里 更新时间:2023-11-01 12:27:29 24 4
gpt4 key购买 nike

我正在向现有代码库添加新功能。无论如何,我认为我当前正在做的功能应该在 MVC 中。现有的代码库不是 MVC,但我正在实现的功能,我希望它是 MVC。而且我不想将一些现有的 MVC 整合到现有的代码中。

所以,我的问题是...我不知道为 Controller 类实现渲染函数。通常,在 MVC 中,您让 Controller 做一些事情,使用渲染函数将其设置为一个变量,然后 View 现在可以神奇地访问 Controller 设置的给定变量。

除了全局,我不知道该怎么做,这感觉不对,我一直告诉自己必须有更好的方法。编辑:它是全局性的,不是吗? >_> 那些其他框架是如何做到的?

这是一个愚蠢的例子:

Controller :

class UserController extend BaseController 
{
public function actionIndex()
{
$User = new User; // create a instance User model

$User->getListofUser();

$this->render('ListOfUser', 'model'=>$model);
}
}

查看:

<?php
//I can use $ListOfUser now...
//some for loop
echo $ListofUser[$i];
?>

提前致谢!

最佳答案

一个非常简单的例子:

class View {
function render($file, $variables = array()) {
extract($variables);

ob_start();
include $file;
$renderedView = ob_get_clean();

return $renderedView;
}
}

$view = new View();
echo $view->render('viewfile.php', array('foo' => 'bar'));

viewfile.php 中,您将能够使用变量 $foo。 View 文件中的任何代码都可以访问 $this(View 实例)和 render 函数内范围内的任何变量。 extract 将数组的内容提取到局部变量中。

关于php - 自定义 MVC,如何为 Controller 实现渲染功能,以便 View 可以访问 Controller 设置的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com