Moderne Routing-Verfahren in PHP-Apps
Zwar bin ich schon seit einiger Zeit auf Python umgestiegen und versuche PHP mittlerweile weitgehenst zu vermeiden, aber dennoch wurde ich vor einigen Tagen von einem Freund gefragt, wie man heutzutage seinen URLs den richtigen Controller zuordnet. Aus lauter Langeweile, habe ich so ein relativ umfangreiches Beispiel erstellt, welches die meiner Meinung nach schönste Möglichkeit aufzeigt.
Undzwar besteht diese aus einer Tabelle, welche mit Hilfe von Regulären Ausdrücken, URLs einen bestimmten Controller (im Beispiel eine einfache Datei) zuordnet. Die Regex-Tabelle hat den Vorteil, eine zentral gelegene, leicht zu ändernde und flexible Möglichkeit zum Registrieren von URLs zu bieten. Weiterhin werden GET-Parameter in Forum von URI-Komponenten (z.B. “username” in /profile/username/view) direkt mit geparst und in ein einfach zu bedienendes Array (hier: $matches) gepackt.
Kurze Erklärung, wie man das Script benutzen kann. Man erstellt sich einen Ordner mit beliebigem Namen auf dem eigenen Webserver. Dort erstellt man eine Datei, welche zwingend index.php heißen muss mit dem gleich folgenden Inhalt. Außerdem benötigt man eine Datei namens .htaccess, welche den in der index.php als Kommentar vorhanden Code enthält. Nachdem das getan ist, muss die Variable $url_prefix noch angepasst werden. Diese muss die URI enthalten, unter dem die index.php (bzw. deren übergeordneter Ordner) erreichbar ist. In meinem Beispiel ist dies /test/. wichtig ist der abschließende Slash! anschließend probiert man einfach mal die in der $urls-Variable angegebenen URLs aus.

