Artikel
von Patrick Froch
Anspruch 3/5 Fat Free Framework 3.x PHP 5.6
In diesem Beitrag über das PHP Fat Free Framework wird ein Einblick in das Routing gegeben. Es wird gezeigt, wie man einfache Routen erstellt und bei komplexeren Anwendungen die Verwaltung der Routen organisiert.

Überblick

Die einfachste Art, ist die dierekte Ausgabe des Inhalts mittels einer anonymen Funktion in der Konfiguration der Route: Dies ist natürlich nicht gerade Praxistauglich. Meist wird für die Verarbeitung der Anfrage eine Klasse verwendet: Das ganze funktioniert auch mit statischen Methoden: Selbstverständlich können auch Namespaces verwendet werden:

Tokens

Es ist auch möglich Tokens in den Routen zu verwenden. Hier wird in der Variable @count ein Wert übergeben, auf man dann im Controller mit $f3->get('PARAMS.count') zugriffen kann. Im Template kann auch direkt mit {{ @PARAMS.count }} darauf zugegriffen werden. Das Array mit den Parametern ($params) wird auch an die Controller-Methode übergeben: Weiterhin kann man in den Routes Wildcards (*) verwenden um alle URLs abzufangen:

Namen für Routes

Es ist möglich den Routes Namen zu geben, um sie einfacher ansprechen zu können: Im Template könnte man den Namen der Route dann z.B. für einen Link nutzen:

Rerouting

Um eine Anfrage weiterzuleiten, geht man wie folgt vor:

Routing für ein RESTful-Service

Will man einen RESTful-Service erstellen, werden häufig Klassen verwendet, die auf die verschiedenen HTTP-Methoden reagieren. Hierfür gibt es die Methode map(): In den Methoden kann dann auf den Parameter @item zugegriffen werden, z.B. mit $f3->get('PARAMS.item').

Dynamische Routes

Um eine dynamische Route zu definieren, nutzt man einen Token, der als Methoden- oder Klassenname verwendet wird: In der ersten Zeile wird den Token @genre als Methodenname verwendet und je nach URL eine andere Methode aufgerufen. In der zweiten Zeile wird auch die Klassen per Token (@controller) ausgewählt. Dies ist natürlich sehr flexibel, da man sich fast die ganze Konfiguration der Routes sparen kann.

Auslagern der Routes-Konfiguration

Bei größeren Anwengungen kann das direkte Definieren der Routes schnell unübersichtlich werden. Man hat deshalb die Möglichkeit die Routes und das Mapping in Konfigurationsdateien auszulagern. Die Routes werden im Abschnit [routes] definiert, die Mappings in [maps]. Die Dateien werden mit $f3->config('pfad/zur/datei'); geladen.

AJAX

Zum Schluss will ich noch zeigen, wie man ein AJAX-Request anders routen kann als eine synchrone Anfrage: Auch die AJAX-Routes kann man in Konfigurationsdateien auslagern.

Zurück

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.