เมธอด renderView สำหรับ MVC framework ของตัวเอง
เมธอด renderView จะรับไฟล์
วิวและแทนที่ค่าของตัวแปร
ลงไป มันทำด้วยวิธีที่ฉลาด
อย่างที่คุณทราบ ตัวแปรที่ใช้
ในไฟล์วิว อยู่ใน property
data ของอ็อบเจกต์คลาส Page
ตัวแปรเหล่านี้เป็น associative array
เราจำเป็นต้องเปลี่ยน array นี้
ให้เป็นตัวแปรจริง ๆ จากนั้น include
ไฟล์วิวผ่าน include
ในกรณีนี้ ตัวแปรที่กำหนดให้ใช้ได้ใน
ไฟล์นี้จะได้รับค่าและ
ผลลัพธ์ที่เราได้จะคือโค้ด HTML
ที่มีค่าตัวแปรแทนที่แล้ว
เพื่อแปลง array เป็นตัวแปร
เราใช้ฟังก์ชันพิเศษ extract:
<?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();
}
}
?>