Entwicklung eines Routers in einem eigenen MVC-Framework
Jetzt müssen Sie einen Router entwickeln. Er stellt eine Klasse dar, die ein Array von Routen nehmen, die angeforderte URL nehmen und bestimmen wird, welche Route dieser URL entspricht. Nach dem Auffinden der passenden Route muss unsere Klasse die URL-Teile erhalten, die den Parametern der Route entsprechen.
Unser Router soll als sein Ergebnis
ein Objekt der Klasse Track zurückgeben,
das den Namen des Controllers,
der für diese Anfrage aufgerufen werden soll, die Namen der Aktion und die Parameter aus der URL enthält.
Lassen Sie unsere Klasse Track Eigenschaften
controller, action und params haben,
die nur lesbar sind:
<?php
namespace Core;
class Track
{
private $controller;
private $action;
private $params;
public function __construct($controller, $action, $params)
{
$this->controller = $controller;
$this->action = $action;
$this->params = $params;
}
public function __get($property)
{
return $this->$property;
}
}
?>
Beispiel
Nehmen wir zum Beispiel an, in der Adressleiste wurde
/test/1/2/ eingegeben. Nehmen wir an, wir haben eine Route,
die dieser Adresse entspricht:
<?php
new Route('/test/:var1/:var2/', 'test', 'index');
?>
Das bedeutet, dass der Controllername test lautet,
der Name der Aktion - index, und das Parameterarray
wird wie folgt sein:
<?php
['var1' => 1, 'var2' => 2]
?>
Das Ziel dieser Lektion ist es, eine Klasse Router zu schreiben,
die ein Objekt der Klasse Track zurückgibt.
Der Rest betrifft uns vorerst nicht. Lassen Sie uns mit dem Schreiben
dieser Klasse fortfahren.
Praktische Aufgaben
Kopieren Sie den Code meiner Klasse Track
und platzieren Sie sie in der Datei
/core/Track.php.