renderVie metodo savo MVC karkase

Metodas renderView gaus failą vaizdo ir pakeis jame kintamųjų reikšmes. Tai daroma gudriai. Kaip žinote, kintamieji, kurie naudojami vaizdo faile, yra pateikiami savybėje data Page klasės objekto.

Šie kintamieji yra asociatyvus masyvas. Mums reikia paversti šį masyvą į tikrus kintamuosius, o tada prijungti vaizdo failą naudojant include. Tokiu atveju failo prieinami kintamieji gaus savo reikšmes ir išvestyje mes gausime tik HTML kodą jau su pakeistomis kintamųjų reikšmėmis.

Norėdami paversti masyvą į kintamuosius, naudokite specialią funkciją 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);    // masyvas į kintamuosius
        include $viewPath; // prijungiame vaizdo failą
      return ob_get_clean();
    }
  }
?>