Μέθοδος renderView για το δικό σας MVC πλαίσιο
Η μέθοδος renderView θα λαμβάνει το αρχείο
προβολής και θα αντικαθιστά σε αυτό τις τιμές
των μεταβλητών. Αυτό γίνεται με έναν έξυπνο τρόπο.
Όπως γνωρίζετε, οι μεταβλητές που χρησιμοποιούνται
στο αρχείο προβολής, περιέχονται στην ιδιότητα
data του αντικειμένου της κλάσης Page.
Αυτές οι μεταβλητές αντιπροσωπεύουν έναν associative
πίνακα. Πρέπει να μετατρέψουμε αυτόν τον πίνακα
σε πραγματικές μεταβλητές και στη συνέχεια να συμπεριλάβουμε
το αρχείο προβολής μέσω include.
Σε αυτήν την περίπτωση οι διαθέσιμες σε αυτό
το αρχείο μεταβλητές θα λάβουν την τιμή τους και
στην έξοδο θα λάβουμε απλώς κώδικα HTML ήδη
με αντικατεστημένες τιμές των μεταβλητών.
Για να μετατρέψουμε τον πίνακα σε μεταβλητές,
χρησιμοποιούμε την ειδική συνάρτηση 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); // πίνακας σε μεταβλητές
include $viewPath; // συμπεριλαμβάνουμε το αρχείο προβολής
return ob_get_clean();
}
}
?>