renderView մեթոդը սեփական MVC ֆրեյմվորքում

renderView մեթոդը կստանա ներկայացման ֆայլը և կտեղադրի դրա մեջ փոփոխականների արժեքները։ Դա արվում է խորամանկ կերպով։ Ինչպես գիտեք, ներկայացման ֆայլում օգտագործվող փոփոխականները պարունակվում են Page դասի օբյեկտի data հատկության մեջ։

Այս փոփոխականները ներկայացնում են ասոցիատիվ զանգված։ Մենք պետք է այդ զանգվածը վերածենք իսկական փոփոխականների, ապա միացնենք ներկայացման ֆայլը 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();
    }
  }
?>