⊗ppMVDFmRr 25 of 35 menu

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.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen