Phương thức renderVie cho MVC framework tự xây dựng
Phương thức renderView sẽ nhận tệp
giao diện và thay thế các giá trị
biến vào đó. Điều này được thực hiện một cách khéo léo.
Như bạn đã biết, các biến được sử dụng
trong tệp giao diện, được chứa trong thuộc tính
data của đối tượng lớp Page.
Các biến này là một mảng kết hợp.
Chúng ta cần chuyển đổi mảng này
thành các biến thực sự, sau đó kết nối
tệp giao diện thông qua include.
Trong trường hợp này, các biến có sẵn trong
tệp đó sẽ nhận giá trị của chúng và
ở đầu ra chúng ta sẽ nhận được mã HTML
với các giá trị biến đã được thay thế.
Để chuyển đổi mảng thành các biến,
hãy sử dụng hàm đặc biệt 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); // mảng thành các biến
include $viewPath; // kết nối tệp giao diện
return ob_get_clean();
}
}
?>