Метод renderView за собствен 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();
}
}
?>