Возможно, мой вопрос звучит странно, но прошу простить меня, ибо я только начал осваивать MVC , и сейчас постараюсь сформулировать вопрос почётче :)
Итак, первый вопрос, правильно ли я понял, что к разделу "Views" относятся исключительно шаблоны. Т.е. то, что мы показываем пользователю?
Я написал следующий класс, для вывода изображения:
class View
{
protected $variables = array();
/**
* Сохраняет данные передаваемые в шаблон по заданному имени.
*
* @param $name Имя переменной в шаблоне
* @param $value Значение переменной в шаблоне
*
* @return $this
*/
public function assign($name, $value)
{
$this->variables[$name] = $value;
return $this;
}
/**
* Загружает указанный шаблон с заранее сохранёнными данными
*
* @param $template Путь к шаблону.
*
* @return string
*/
public function render($template)
{
extract($this->variables);
ob_start();
require_once $template;
return $content = ob_get_clean();
}
public function display($template)
{
extract($this->variables);
ob_start();
require_once $template;
echo $content = ob_get_clean();
}
}
И, собственно вопрос второй - к чему он будет относится ? Это модель, вью или контроллер? В какой папке проекта должен лежать этот класс? Или не стоит описывать отдельный класс, а просто описать методы этого класса в базовом контроллере и наследоваться от него?
Ну и основной вопрос - как всё таки правильно вывести слой представления пользователю?
Пока что я вижу такой вариант: в контроллере получаю данные модели, создаю объект класса View(там же в методе контроллера) и с его помощью подключаю необходимый шаблон? Смущает только неопределённость на счёт класса View.