borisbaer: Was gibt es beim Schreiben eines PHP-Routers zu beachten?

Beitrag lesen

Hi,

ich bin gerade dabei, für mein MVC-Framework einen Router zu erstellen, der die URL-Anfragen für meine Website verarbeitet. Ich benötige eigentlich nur GET und POST als HTTP-Methoden. Bei den vorgefertigten PHP-Routern auf Github habe ich gesehen, dass beim Erstellen einer Route meist direkt die HTTP-Methode mit angegeben wird. Mitunter werden sogar zwei verschiedene Funktionen dafür geschrieben.

Ich habe erst vor kurzer Zeit mit PHP OOP angefangen und weiß nicht wirklich, worauf man achten muss. Ich möchte in der Controller-Class bzw. im Handler selbst die HTTP-Anfrage auflösen lassen, denn dann kann ich ja beim Hinzufügen der Route darauf verzichten.

Ich sehe zwei Möglichkeiten: Entweder man gibt bei der addRoute-Funktion auf der index.php die HTTP-Methode an und verweist dann je nachdem auf eine bestimmte Method in der Class, z.B.: public function isPost() bzw. isGet(). Oder man verzichtet auf solche Methods, lässt in der addRoute-Funktion die HTTP-Methode außen vor und klärt dann direkt in der Class, was passieren soll, wenn es z.B. ein POST-Request ist, indem man ein if statement einfügt in der Art if ( $_POST ) { // tu was }.

In der index.php würde dann beispielsweise nur stehen:

$router -> add( 'admin/{ handler }' );

Ist das Geschmackssache oder gibt es da so etwas wie eine Best-Practice-Vorgehensweise?

Vielen Dank schon mal!

Grüße
Boris

P.S.: Die Variable { handler } entspricht eigentlich immer einer Controller-Class, die mit einer View-Class desselben Namens korrespondiert. Ist hier die Bezeichnung handler dann überhaupt semantisch korrekt?