Προβολές στο MVC σε PHP
Ας προσθέσουμε τώρα προβολές στις ενέργειές μας.
Σύμφωνα με τους κανόνες του framework μας, οι προβολές
αποθηκεύονται στο φάκελο /project/views/.
Επιπλέον, στο framework μας ισχύει
μια σύμβαση: το όνομα του αρχείου με την προβολή πρέπει
να συμπίπτει με το όνομα της ενέργειας και να τοποθετείται
σε ένα φάκελο με το ίδιο όνομα όπως το όνομα του ελεγκτή.
Για παράδειγμα, εάν έχουμε τον ελεγκτή PageController,
τότε όλες οι προβολές του θα πρέπει να αποθηκεύονται
στον φάκελο /project/views/page/. Το ίδιο
αρχείο προβολής πρέπει να έχει επέκταση
.php. Για παράδειγμα, εάν στον ελεγκτή
PageController υπάρχει η ενέργεια act,
τότε η προβολή της θα πρέπει να τοποθετείται στο
/project/views/page/act.php.
Για να οριστεί μια προβολή σε κάποια
ενέργεια, αυτή η ενέργεια πρέπει να καλέσει τη μέθοδο
render, περνώντας της ως παράμετρο το όνομα
της προβολής. Το όνομα της προβολής πρέπει να αποτελείται
από το όνομα του ελεγκτή με το πρώτο γράμμα μικρό, μετά
από το οποίο μέσω / θα γραφεί το όνομα
της ενέργειας.
Η μέθοδος render δεν χρειάζεται να υλοποιηθεί
στον ελεγκτή - κληρονομείται από τη γονική
κλάση Core\Controller. Επιπλέον,
για τη σωστή λειτουργία, το αποτέλεσμα της μεθόδου
πρέπει να επιστραφεί μέσω return.
Λοιπόν, ας υποθέσουμε ότι έχουμε τον ελεγκτή Page
με την ενέργεια act. Ας δέσουμε
σε αυτήν την ενέργεια μια προβολή:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act()
{
return $this->render('page/act');
}
}
?>
Ας δημιουργήσουμε τώρα το αρχείο με τον HTML κώδικα της προβολής μας:
<div>
αυτή είναι η προβολή
της ενέργειας act του ελεγκτή page
</div>
Πραγματοποιήστε τις περιγραφόμενες χειρισμούς και στη συνέχεια απευθυνθείτε στην ενέργειά μας μέσω της γραμμής διευθύνσεων. Βεβαιωθείτε ότι στο πρόγραμμα περιήγησης εμφανίζεται το κείμενο από την προβολή που δημιουργήσατε.