Arbeit mit Routen in Ihrem eigenen MVC-Framework
Sie wissen bereits, dass in der Datei /project/config/routes.php
Routen platziert werden, die die Entsprechungen
zwischen URL und Controllern mit Aktionen angeben. Routen
sind Objekte der Klasse Route.
Lassen Sie uns diese Klasse in der Datei
/core/Route.php erstellen:
<?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;
}
}
?>
Wie Sie sehen, sind die Eigenschaften in dieser Klasse nur zum Lesen vorgesehen, was durch die Verwendung von Magie erreicht wird.
Schauen Sie nun in die Datei mit den Routen. Sie können
sehen, dass dort ein Array steht, das
über return zurückgegeben wird. Das bedeutet,
dass wenn man eine solche Datei über require
einbindet, kann man das Ergebnis des Einbindens in einer
Variable speichern und in dieser Variable befindet sich unser
Array:
<?php
namespace Core;
error_reporting(E_ALL);
ini_set('display_errors', 'on');
spl_autoload_register(function($class) {
// Ihre Implementierung der Autoload-Funktion
});
// Lesen wir das Array aus der Datei mit den Routen in eine Variable ein:
$routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php';
?>
Kopieren Sie den Code meiner Klasse Route
und platzieren Sie sie in der Datei
/core/Route.php.
Holen Sie sich das Array mit den Routen in der Datei index.php.