Metoda renderView dla własnego frameworka MVC
Metoda renderView będzie pobierać plik
widoku i podstawiać w nim wartości
zmiennych. Robi się to w sprytny sposób.
Jak wiesz, zmienne używane
w pliku widoku są zawarte we właściwości
data obiektu klasy Page.
Te zmienne reprezentują asocjacyjną
tablicę. Musimy przekształcić tę tablicę
w rzeczywiste zmienne, a następnie podłączyć
plik widoku za pomocą include.
W tym przypadku określone dostępne w tym
pliku zmienne otrzymają swoje wartości i
na wyjściu otrzymamy po prostu kod HTML już
z podstawionymi wartościami zmiennych.
Aby przekształcić tablicę w zmienne,
użyjemy specjalnej funkcji 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); // tablica na zmienne
include $viewPath; // podłączamy plik widoku
return ob_get_clean();
}
}
?>