Tach!
Das ist Aufgabe des Routers.
Kontrolle über Benutzereingaben Aufgabe des Routers? Mag sein dass das Bei Dir so ist.Ein Request hat zunächst einmal eine Ziel-Angabe. Die ist in der Regel nicht vom Benutzer eingegeben, sondern indirekt gewählt, zum Beispiel im href-Attribut beim Klicken eines Links oder beim Absenden eines Formulars im Action-Attribut [..].
Naiv bis leichtsinnig: Parameter liegen IMMER in den Händen der Benutzer. Eine diesbezügliche Kontrolle muss absolut wasserdicht sein, damit Deine Anwendung das macht, was Du willst und nicht das, was der Benutzer will.
Gerade PHP ist in dieser Hinsicht anfällig und auch mit einer anderen PL (Perl) muss ein Programmierer sehr gut wissen was passiert, wenn ein Benutzer Parameter überschreibt indem er beispielsweise weitere gleichnamige Parameter anhängt.
Und das kann nicht Aufgabe eines Routers sein: Parameterkontrolle, Benutzereingaben.
Es wird unnötig kompliziert und schwer überschaubar, wenn das jemand so macht. Besser: Das Routing endet in der Pfadangabe (ohne Parameter). Der Router schaut, welche Klasse an den Request-URL gebunden ist, im Default heißt diese Klasse NotFound. Jede Klasse kennt das Model (M im MVC) implementiert ein Interface, die Interface-Methoden werden aufgerufen wobei eine der Methoden den Controller implementiert (C im MVC) und erzeugt damit das View (V im MVC). Einfacher gehts nicht und für Plugins stehen alle Wege offen.
Freundliche Grüße, während andere ihre Doktorarbeiten über Design Patterns schreiben...