記事を何度も読んでいますが、まだ理解できない部分があります。記事へのリンク : Model-View-Confusion part 1: モデルが MVC のビューによってアクセスされる理由
以下のコードは、私が混乱していると思うものです。
class ListView extends View {
public $model;
public $template;
public $listTemplate;
public $errorTemplate;
public $itemName = 'items';
public function output() {
$result = $this->model->findAll();
if (count($result) > 0) {
$this->template = $this->getTemplate($this->listTemplate);
$this->template->addSet($this->itemName, $result);
} else {
$this->template = $this->getTemplate($this->errorTemplate);
}
return $this->template->render();
}
}
コントローラーは次のようになります。
class UserController extends Controller {
public $viewName = 'ListView';
public function showList() {
$this->view->model = $this->model->user;
$this->view->listTemplate = 'UserList.tpl';
$this->view->errorTemplate = 'ErrorNoUsers.tpl';
}
}
私が理解できるように、
このように名前が付けられたメソッドで渡された名前付きtemplate
から継承されたメソッドの結果に割り当てられましたView
getTemplate
View
listTemplate
$this->getTemplate($this->listTemplate)
私が混乱しているのは、$template
突然メソッドがあったことです。つまり、クラスになります。ここ$this->template->addSet($this->itemName, $result);
と `$this->template->render();
そこで何が起こったのか分かりますか?