Метод renderView за собствен MVC фреймуърк

Методът renderView ще получава файл на изгледа и ще замества в него стойностите на променливите. Това се прави по хитр начин. Както знаете, променливите, които се използват във файла с изгледа, се съдържат в свойството data на обекта от клас Page.

Тези променливи представляват асоциативен масив. Трябва да превърнем този масив в истински променливи и след това да включим файла с изгледа чрез include. В този случай посочените достъпни в този файл променливи ще получат своята стойност и на изхода ще получим просто HTML код вече със заместени стойности на променливите.

За да преобразуваме масива в променливи, използваме специалната функция 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);    // масив в променливи
        include $viewPath; // включваме файла с изгледа
      return ob_get_clean();
    }
  }
?>