Метод renderVie для своего MVC фреймворке
Метод renderView будет получать файл
представления и подставлять в него значения
переменных. Это делается хитрым образом.
Как вы знаете, переменные, которые используются
в файле с представлением, содержатся в свойстве
data объекта класса Page.
Эти переменные представляют собой ассоциативный
массив. Нам нужно превратить этот массив
в настоящие переменные, а затем подключить
файл с представлением через include.
В этом случае указанные доступные в этом
файле переменные получат свое значение и
на выходе мы получим просто HTML код уже
с подставленными значениями переменных.
Для того, чтобы преобразовать массив в переменные,
используем специальную функцию extract:
<?php
private function renderView(Page $page) {
$viewPath = $_SERVER['DOCUMENT_ROOT'] . "/project/views/{$page->view}.php";
if (file_exists($viewPath)) {
ob_start();
$data = $page->data;
extract($data); // массив в переменные
include $viewPath; // подключаем файл с представлением
return ob_get_clean();
}
}
?>