PHP MVC问题

Mik*_*ore 2 php model-view-controller

给定一个Controller类和一个View类,控制器是否更好地直接为视图属性赋值,或者更好的是为控制器中的属性赋值,然后在准备好显示它时将这些属性复制到视图中?

示例模型类

class Model
{
  public $propertyA;
  public $propertyB;
}
Run Code Online (Sandbox Code Playgroud)

示例控制器类:

class Controller
{
  protected $view;
  protected $model;

  public function __construct()
  {
    $this->model = new Model();

    $this->view = new View();
    $this->prepareData();
    $this->initView();
  }

  protected function prepareData()
  {
    $this->model->propertyA = 'This is property A.';
    $this->model->propertyB = 'This is property B.';        
  }

  protected function initView()
  {
    $this->view->model = $this->model;
    $this->view->display();
  }
}
Run Code Online (Sandbox Code Playgroud)

示例View类:

class View
{
  public $model;

  public function display()
  {
    echo "propertyA = $this->model->propertyA";
    echo "propertyB = $this->model->propertyB";
  }
}    
Run Code Online (Sandbox Code Playgroud)

对不起,我累了.我确实使用了模型,所以请记住这一点,重新考虑你的答案.

Rom*_*eau 5

数据应该只在一个地方.如果不是当事情变得复杂时,很难同步你拥有数据的不同地方.在MVC中,您有一个模型,这就是数据所在的位置.将模型传递到视图中并使视图显示.

这是一个简单的解释:http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller 或这里的那些不喜欢维基百科的人:http://ootips.org/mvc -pattern.html

模型可以像具有属性的类一样简单.