Lớp View trong framework MVC tự viết
Bây giờ chúng ta sẽ tạo lớp View,
chịu trách nhiệm cho việc hiển thị dữ liệu.
Nó sẽ nhận một đối tượng của lớp
Page làm tham số, và kết quả trả về là
mã HTML hoàn chỉnh của trang, có thể
được in ra màn hình.
Hãy xem cách chúng ta sẽ sử dụng lớp
View trong tệp index.php:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// phần triển khai autoload của bạn
});
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
$track = ( new Router($routes) ) -> getTrack($_SERVER['REQUEST_URI']);
$page = ( new Dispatcher ) -> getPage($track);
echo (new View) -> render($page); // đây là cách dùng lớp View
?>
Cấu trúc mã của lớp View sẽ có
dạng như sau:
<?php
namespace Core;
class View
{
public function render(Page $page) {
return $this->renderLayout($page, $this->renderView($page));
}
private function renderLayout(Page $page, $content) {
}
private function renderView(Page $page) {
}
}
?>