Route
class Route extends Alvine
Route von der HTTP-Anfrage zum Presenter
Eine Route bildet die Verknüpfung einer URI zu einer konkreten Presenter-Klasse ab. Der Route kann als Methode jede HTTP-Variable oder das Schlüsselwort ANY übergeben werden. ANY sorgt dafür, dass unabhängig von dem eigentlichen HTTP-Verb der Anfrage, die Route ausgeführt wird.
Constants
PARAMETERFROMURL |
Parameter aus Route |
PARAMETERFROMROUTE |
Parameter aus Route |
PARAMETERFROMSUPERGLOBAL |
Glabe Variable |
PARAMETERFROMQUERY |
Parameter aus Route |
PARAMETERFROMBODY |
Parameter aus POST und Body |
PARAMETERFROMCOOKIE |
Parameter aus COOKIE |
UNDEFINEDRELATION |
Name, wenn keine Relation definiert wurde |
UNDEFINEDLABEL |
Label, wenn keine Label für den Link definiert wurde |
Properties
protected array | $parameterSource | ||
protected string | $method | ||
protected string | $pattern | ||
protected Presenter | $presenter | ||
protected string | $presenterClass | ||
protected SimpleMap | $references | ||
protected ParameterMap | $parameter | ||
protected Node | $configuration | ||
protected boolean | $default | ||
protected string> | $exceptionHandler | ||
protected NodeList | $links | ||
protected Map | $linkMap | ||
protected string | $template | Das Template ist das Gegenstück des Pattern und sagt, wie die URL der Route im View aussehen soll. | |
protected AccessControlList | $accessControlList |
Methods
Route
Referenzen auf andere Routen setzen
Referenzen auf andere Routen
Referenzen auf andere Routen
Reihenfolge der Auswertung. Wird ein leeres Array übergeben, so werden keine Parameter definiert.
Parameter der Route
Der Wert ist true, wenn die Route als Default gesetzt wurde.
Defaultroute setzen
Diese Methode prüft die Kriterien der übergeben Route, mit denen der internen Definition. Passen die beiden zusammen, so gibt die Route true zurück, ansonsten false.
Passt Route und Request Zusammen
Prüfen ob die Berechtigung gegeben ist. Wurde keine AccessList definiert ist die Berechtigung immer gegeben.
Presenter aus Klassendefinition erstellen
Initialisieren des Presenters
Exception behandeln und mögliche Exception-Handler aufrufen. Ist kein Exception Handler definiert, so wird die Übergebene Exception geworfen.
Interner Run Befehl
No description
Initialisierte Routing-Parameter
URL Parameter
Parameter von PHP geparsed
Query Parameter auslesen
Zugangsliste für die Route setzen, wird null übergeben so wird die interne Zugangsliste gelöscht.
Zugriffsliste
Body Parameter (POST, PUT)
Cookie Parameter
Route Parameter
Rückgabe des gesetzten Presenters
Rückgabe des gesetzten Suchmusters
Rückgabe der gesetzten Methode
Parameter der Route
Abbruchkriterium
Template für die URI setzen
Template der Route
Setzt die Konfiguration
Linkliste der Route
Zeichenkette
Serialisieren der Route-Klasse
Unserialize
Details
at line 174
__construct(string $method, string $pattern, string $presenterClass, string $id = null)
Route
Neues Route-Objekt erstellen. Die optionale ID wird als Objekt-Hash verwendet und muss für jede Route eindeutig sein. Wird die ID nicht angegeben, so wird eine ID von Alvine generiert.
Im Standard werden die Parameter in der Reihenfolge: Query, Post, Cookie, Route und URL ausgewertet.
at line 213
Route
setReferences(SimpleMap $references)
Referenzen auf andere Routen setzen
at line 223
SimpleMap
getReferences()
Referenzen auf andere Routen
at line 234
SimpleMap
getReference(string $method)
Referenzen auf andere Routen
at line 246
Route
attachExceptionHandler(string $exception, Handler $handler)
Handler für Exception hinzufügen
at line 261
Route
setParameterSources(array $sources)
Reihenfolge der Auswertung. Wird ein leeres Array übergeben, so werden keine Parameter definiert.
at line 273
Route
setParameter(ParameterMap $parameter)
Parameter der Route
at line 283
boolean
isDefault()
Der Wert ist true, wenn die Route als Default gesetzt wurde.
at line 294
Route
setDefault(boolean $mode = true)
Defaultroute setzen
at line 314
boolean
isPassable(string $method, URI $route)
Diese Methode prüft die Kriterien der übergeben Route, mit denen der internen Definition. Passen die beiden zusammen, so gibt die Route true zurück, ansonsten false.
Es Match auch, wenn die Route-ID übergeben wird.
at line 329
static bool
matchRequest(string $routeId, string $routeMethod, string $routePattern, string $requestMethod, URI $requestUri)
Passt Route und Request Zusammen
at line 348
boolean
hasPermission(Identity $identity, Permission $permission = null)
Prüfen ob die Berechtigung gegeben ist. Wurde keine AccessList definiert ist die Berechtigung immer gegeben.
at line 365
protected presenterClass
getPresenterObject()
Presenter aus Klassendefinition erstellen
at line 401
protected Route
initPresenter()
Initialisieren des Presenters
at line 424
Route
run(string $method, URI $route)
Presenter aufrufen
Dem Presenter werden neben den fest im Routing definierte Parameter auch die aus der URL definierten Parameter übergeben. Die dynamisch definierten Parameter überschreiben die fest definierten Parameter.
Vor dem Aufruf von run() muss mit isPassable geprüft werden ob die Route ausgeführt werden kann.
at line 449
Route
handleException(Exception $e, string $method, URI $route)
Exception behandeln und mögliche Exception-Handler aufrufen. Ist kein Exception Handler definiert, so wird die Übergebene Exception geworfen.
at line 473
protected Route
runInternal(string $method, URI $route)
Interner Run Befehl
at line 504
protected Map
getRouteParameterMap(ParameterMap $expectedParameters, URI $route)
at line 585
ParameterMap
getInitializedRouteParameters(string $method, URI $route)
Initialisierte Routing-Parameter
at line 610
protected mixed
getUrlParameter(string $key, URI $route)
URL Parameter
at line 627
protected mixed
getSuperglobalParameter(string $key, URI $route)
Parameter von PHP geparsed
at line 657
protected type
getQueryParameter(type $key, URI $route, Parameter $parameter = null)
Query Parameter auslesen
Wurde in der URL (zum Beispiel für einen internen Redirect Parameter definiert), so werden diese Parameter zurückgegeben. Ansonsten wird versucht aus dem Request (Superglobale) die Parameter auszulesen.
at line 684
Route
setAccessControlList(AccessControlList $accessControlList = null)
Zugangsliste für die Route setzen, wird null übergeben so wird die interne Zugangsliste gelöscht.
at line 694
AccessControlList|null
getAccessControlList()
Zugriffsliste
at line 706
protected mixed
getBodyParameter(string $key, URI $route)
Body Parameter (POST, PUT)
at line 718
protected mixed
getCookieParameter(string $key, URI $route)
Cookie Parameter
at line 730
protected mixed
getRouteParameter(string $key, URI $route)
Route Parameter
at line 741
Presenter
getPresenter()
Rückgabe des gesetzten Presenters
at line 751
string
getPattern()
Rückgabe des gesetzten Suchmusters
at line 760
string
getMethod()
Rückgabe der gesetzten Methode
at line 769
ParameterMap
getParameter()
Parameter der Route
at line 782
boolean
isFinale()
Abbruchkriterium
Gibt diese Methode true (standard) zurück, so werden vom Router keine weiteren Routen mehr betrachtet und die Verarbeitung abgebrochen.
at line 796
Route
setTemplate(string $template)
Template für die URI setzen
Das Template ist das Gegenstück des Pattern und sagt, wie die URL der Route im View aussehen soll.
at line 827
string
getTemplate(Map $parameters = null)
Template der Route
Das Template ist das Gegenstück des Pattern und sagt, wie die URL der Route im View aussehen soll.
Wurde kein explizites Template gesetzt, so wird das Pattern als Templateverwenden. Dies kann bei der Verwendung von RegEx-Pattern zu Problemen führen.
Über die optionalen Parameter können Platzhalter in dem Pattern ersetztwerden. So kann Die URI /kontakt/telefonnummer/{number}/ mittels Map ersetzt werden.
$map = (new SimpleMap)->setValue('number','1425346');
$route->getTemplate($map);
Ausgabe: /kontakt/telefonnummer/1425346/
at line 855
Route
setConfiguration(NodeList $nodes)
Setzt die Konfiguration
at line 867
Route
setLinks(NodeList $links)
Setzt die Verlinkung
at line 878
Map
getLinks()
Linkliste der Route
at line 962
Route
initLinks(Closure $closure)
Funktion auf Basis der Linkliste aufrufen
Mit Hilfe dieser Methode kann ein Presenter die Links aus der Routingtabelle einlesen. Dazu muss er eine Callback-Funktion übergeben, der die einzelnen Link-Nodes übergeben werden.
$route->initLinks(function(\Alvine\Types\Node $node) {
// do something
});
at line 990
Route
initConfiguration(Closure $closure, array $nodes = null)
Konfiguration durchführen
Mit Hilfe dieser Methode kann ein Presenter die Konfiguration aus der Routingtabelle einlesen. Dazu muss er eine Callback-Funktion übergeben, der die einzelnen Konfigurations-Nodes übergeben werden.
$route->initConfiguration(function(\Alvine\Types\Node $node) {
// do something
});
at line 1004
string
__toString()
Zeichenkette
at line 1021
string
serialize()
Serialisieren der Route-Klasse
Es darf keine Referenz auf bestehende Objekte wie zum Beispiel die Anwendungsklasse gespeichert werden. Diese werden im Zusammenspiel mit der unserialize-Methode herausgenommen und beim einlesen wieder eingefügt.
at line 1041
unserialize(object $serialization)
Unserialize
\Alvine\Core\UnserializeException wird im wesentlichen dann geworfen, wenn die Serialisierte Klasse mit einer anderen Anwendungsklasse verknüpft war und die Anwendung umbenannt wurde. In diesem Fall muss der Route-Cache geleert werden.