Öz MVC çärýeginiň renderVie metodu

renderView metody görnüş faýlyny alyp, onyň içine üýtgeýänleriň bahalaryny goýar. Bu hiçili bir ýol bilen edilýär. Bilşiňiz ýaly, görnüş faýlynda ulanylýan üýtgeýänler, Page klasynyň objectiniň data hossusylygynda saklanýar.

Bu üýtgeýänler assosiativ massiw bolup durýar. Biz bu massiwy hakyky üýtgeýänlere öwürmeli, soňra include arkaly görnüş faýlyny birleşdirmelidiris. Bu ýagdaýda, bu faýlda elýeterli görkezilen üýtgeýänler öz bahalaryny alyp we çykyşda biz diňe ýerleşdirilen üýtgeýän bahalary bilen HTML kody alyarys.

Massiwy üýtgeýänlere öwürmek üçin, ýörite extract funksiýasyny ulanyarys:

/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);    // massiw üýtgeýänlere
        include $viewPath; // görnüş faýlyny birleşdirýäris
      return ob_get_clean();
    }
  }
?>