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:

/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);    // tablica na zmienne
        include $viewPath; // podłączamy plik widoku
      return ob_get_clean();
    }
  }
?>