เมธอด renderView สำหรับ MVC framework ของตัวเอง

เมธอด renderView จะรับไฟล์ วิวและแทนที่ค่าของตัวแปร ลงไป มันทำด้วยวิธีที่ฉลาด อย่างที่คุณทราบ ตัวแปรที่ใช้ ในไฟล์วิว อยู่ใน property data ของอ็อบเจกต์คลาส Page

ตัวแปรเหล่านี้เป็น associative array เราจำเป็นต้องเปลี่ยน array นี้ ให้เป็นตัวแปรจริง ๆ จากนั้น include ไฟล์วิวผ่าน include ในกรณีนี้ ตัวแปรที่กำหนดให้ใช้ได้ใน ไฟล์นี้จะได้รับค่าและ ผลลัพธ์ที่เราได้จะคือโค้ด HTML ที่มีค่าตัวแปรแทนที่แล้ว

เพื่อแปลง array เป็นตัวแปร เราใช้ฟังก์ชันพิเศษ 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);    // แปลง array เป็นตัวแปร
        include $viewPath; // include ไฟล์วิว
      return ob_get_clean();
    }
  }
?>