Метад 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();
}
}
?>