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:

/core/View.php<?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();
    }
  }
?>