Php 我应该如何向视图传递数据?

Php 我应该如何向视图传递数据?,php,model-view-controller,Php,Model View Controller,我目前正在各地做一些事情,但我在ContentFactory类中使用一个特定的方法来生成请求的视图: ob_start(); include ($file); $content = ob_get_contents(); ob_end_clean(); return $content; 在调用类(视图类)中,以下是获取内容的方式: public function userSummaryAjax(User $userObj){ global $user; $user = $us

我目前正在各地做一些事情,但我在ContentFactory类中使用一个特定的方法来生成请求的视图:

ob_start();
include ($file);
$content = ob_get_contents();
ob_end_clean();
return $content;
在调用类(视图类)中,以下是获取内容的方式:

public function userSummaryAjax(User $userObj){

    global $user;

    $user = $userObj;

    $content = ContentFactory::capture_output(templates . 'adminUserSummaryAjax.php');

    return $content;
}
这就是基本控制器的外观:

public function userlistView()
{

    $dataArray = $this->helper->getListUsers();

    $content = $this->view->userlistView($dataArray);

    $page = new page();
    $page->setPageTitle("Users");
    $page->setH1("Users");
    $page->setlead("A list of active users");
    $page->setContent($content);
}
我如何改进我所拥有的,使之更好、更简单


不幸的是,如果我可以解耦Zend/Mvc/View并使用其中的一些东西,那就没问题了,我认为您应该使用CLASE和Object来改进实现

php中的控制器应该负责获取数据并放入视图中


在这种情况下,userListView函数应该在params中接收所有必要的模型。

您为什么说不幸?你的意思是说你不能,我也会看着Symfony。在奏鸣曲、FOSUserBundle、Silex等音乐中,你有很多工具。我不想问你为什么有
global$user在那里。你不应该。在适当的MVC实现中,视图实例从模型层请求数据。另外,请注意:停止使用全局状态!。以全局变量或静态变量的形式。我正在慢慢摆脱全局变量-我快速转储了$globals,看到有多少是令人困惑的。如果视图从模型层请求数据,那么,我无法在脑海中真实地描绘它?@JaredFarrish甚至可以在没有结构的情况下使用ZF2 Mvc吗?@Shamil.。我无法在脑海中真实地描绘它。”。您必须首先了解视图不是模板。它是一个处理所有UI逻辑的实例。在web上下文中,它通常意味着“为用户创建响应”。必要时,它会切换多个模板来组装HTML输出。在某些情况下,它只返回一个HTTP位置头(这也是一个响应)?-1:否,控制器应仅负责使用用户输入的数据更改模型层和当前视图的状态。即状态更改是第一次,但如果我仅获得信息?