Εργασία με δρομολογητές στο δικό σας MVC πλαίσιο
Γνωρίζετε ήδη ότι στο αρχείο /project/config/routes.php
τοποθετούνται οι δρομολογητές (routes), που υποδεικνύουν τις αντιστοιχίες
μεταξύ URL και controllers με actions. Οι δρομολογητές
αντιπροσωπεύουν αντικείμενα της κλάσης Route.
Ας φτιάξουμε αυτήν την κλάση στο αρχείο
/core/Route.php:
<?php
namespace Core;
class Route
{
private $path;
private $controller;
private $action;
public function __construct($path, $controller, $action)
{
$this->path = $path;
$this->controller = $controller;
$this->action = $action;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Όπως βλέπετε, σε αυτήν την κλάση οι ιδιότητες προορίζονται μόνο για ανάγνωση, κάτι που επιτυγχάνεται με τη χρήση μαγείας.
Ρίξτε μια ματιά τώρα στο αρχείο με τους δρομολογητές. Μπορείτε
να δείτε, ότι εκεί βρίσκεται ένας πίνακας, ο οποίος
επιστρέφεται μέσω return. Αυτό σημαίνει,
ότι εάν συμπεριληφθεί ένα τέτοιο αρχείο μέσω require,
τότε το αποτέλεσμα της συμπερίληψης μπορεί να καταγραφεί σε
μια μεταβλητή και σε αυτήν τη μεταβλητή θα βρίσκεται ο
πίνακας μας:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// η υλοποίηση της αυτόματης φόρτωσης σας
});
// Διαβάζουμε τον πίνακα από το αρχείο με τους δρομολογητές στη μεταβλητή:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Αντιγράψτε τον κώδικα της κλάσης μου Route
και τοποθετήστε τον στο αρχείο
/core/Route.php.
Λάβετε τον πίνακα με τους δρομολογητές στο αρχείο index.php.