Download the PHP package drips/routing without Composer
On this page you can find all versions of the php package drips/routing. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download drips/routing
More information about drips/routing
Files in drips/routing
Informations about the package routing
Routing
Beschreibung
Das Routing ist zuständig für die Auslösung der URLs zu PHP-Funktionen. Somit können (schöne) URLs manuell festgelegt werden.
Installation
Apache 2
Einfach eine .htaccess
Datei im entsprechenden Verzeichnis hinzufügen:
Hierfür muss das Rewrite-Modul (
mod_rewrite
) des Webservers aktiviert sein.
NGINX
Grundsätzlich müssen alle Anfragen an die index.php
weitergeleitet werden. Hierfür kann folgende Konfiguration verwendet werden:
Verwendung
Anlegen eines Routers
Zuerst muss der Router geladen und angelegt werden.
Hinzufügen von Routen
Nachdem ein entsprechender Router angelegt wurde, können für diesen Routen registriert werden.
Wird die URL
/my/url
aufgerufen, so wird die festgelegte Funktion ausgeführt und es wirdHello World!
angezeigt.Achtung: der Name der Route muss eindeutig sein. Ist der Name bereits vergeben, kann die Route nicht hinzugefügt werden.
MVC-Unterstützung
Das Routing-System unterstützt zusätzlich die Verwendung des Drips-MVC Systems. Dementsprechend kann beim Hinzufügen von Routen nicht nur eine Funktion sondern auch ein Controller übergeben werden:
Routen mit Platzhaltern
Oftmals sind Routen dynamisch. Deshalb können die Routen auch mit Platzhaltern versehen werden. Ein Platzhalter verwendet folgende Schreibweise: {name_des_platzhalters}
.
Alle Parameter entsprechen den jeweiligen Platzhaltern. (Die Reihenfolge der Parameter ist zwingend einzuhalten!)
Außerdem können die Platzhalter mithilfe von regulären Ausdrücken eingeschränkt werden.
Routen einschränken
Die Routen können mehrfach eingeschränkt werden:
- auf bestimmte Domains
- nur für HTTPS-Verbindungen
- auf bestimmte Verbs (Request-Methoden) ... GET, POST, DELETE, PUT
Um eine Einschränkung festlegen zu können wird beim Hinzufügen einer Route ein weiterer Parameter angegeben. Dieser ist ein Array und beinhaltet alle gewünschten Einschränkungen.
Routing starten
Wenn der Router angelegt ist und alle Routen registriert sind, dann kann mit dem Routing-Prozess begonnen werden. Dies funktioniert vollkommen automatisch - es muss lediglich die Funktion, die das Routen übernimmt, aufgerufen werden.
Routen abfragen
Die Methode getRoutes()
liefert alle registrieren Routen zurück. Mithilfe der Funktion hasRoutes()
kann überprüft werden, ob bereits Routen registriert wurden, oder nicht.
Seite nicht gefunden - Error 404
Wird keine entsprechende Route gefunden, wird eine Error404Exception
geworfen.
Links generieren
Damit sich die URLs jederzeit ändern können und auch von unterschiedlichen Verzeichnissen aus aufgerufen werden können, werden die Verlinkungen mit Hilfe der route
Funktion erzeugt.
Ein Link kann wie folgt generiert werden:
Übergeben wird der Name der Route. Des Weiteren können bei Routen mit Platzhaltern die Links auch entsprechend erzeugt werden, indem einfach die Parameter als Array übergeben werden.
Angenommen es gibt eine Route /users/{username}
:
Assets
Das Link-System funktioniert auch für "Dateien", die nicht im Router registriert sind. Gibt es beispielsweise eine CSS-Datei, welche auf einer bestimmten Seite angezeigt werden soll, kann für diese ebenfalls ein absoluter Pfad generiert werden.
Umleitungen
Oftmals ist es notwendig auf eine andere Seite weiterzuleiten. Dies erfolgt über die redirect
-Funktion. Diese funktioniert im Prinzip genau gleich, wie die routelink
-Methode, mit dem einzigen Unterschied, dass kein Link zurückgeliefert wird, sondern direkt auf diese Seite weitergeleitet wird.
Automatisches Routing
Die Route wird wie folgt definiert: /my/url/[auto]
. Somit werden alle Informationen die nach /my/url/
folgen als Parameter übergeben.