renderView-metodi oman MVC-frameworkin
Metodi renderView saa tiedoston
näkymästä ja korvaa siihen muuttujien
arvot. Tämä tehdään ovelalla tavalla.
Kuten tiedät, näkymätiedostossa käytettävät
muuttujat sisältyvät Page-luokan olion
data-ominaisuuteen.
Nämä muuttujat edustavat assosiatiivista
taulukkoa. Meidän on muutettava tämä taulukko
todellisiksi muuttujiksi ja sitten liitettävä
näkymätiedosto include:n kautta.
Tässä tapauksessa kyseisessä tiedostossa saatavilla olevat määritetyt muuttujat saavat arvonsa ja
lopputuloksena saamme yksinkertaisesti HTML-koodin jo
korvatuilla muuttuja-arvoilla.
Jotta muunnetaan taulukko muuttujiksi,
käytetään erityistä funktiota 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); // taulukko muuttujiksi
include $viewPath; // liitetään näkymätiedosto
return ob_get_clean();
}
}
?>