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

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
$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

__construct(string $method, string $pattern, string $presenterClass, string $id = null)

Route

setReferences(SimpleMap $references)

Referenzen auf andere Routen setzen

SimpleMap
getReferences()

Referenzen auf andere Routen

SimpleMap
getReference(string $method)

Referenzen auf andere Routen

attachExceptionHandler(string $exception, Handler $handler)

Handler für Exception hinzufügen

setParameterSources(array $sources)

Reihenfolge der Auswertung. Wird ein leeres Array übergeben, so werden keine Parameter definiert.

setParameter(ParameterMap $parameter)

Parameter der Route

boolean
isDefault()

Der Wert ist true, wenn die Route als Default gesetzt wurde.

setDefault(boolean $mode = true)

Defaultroute setzen

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.

static bool
matchRequest(string $routeId, string $routeMethod, string $routePattern, string $requestMethod, URI $requestUri)

Passt Route und Request Zusammen

boolean
hasPermission(Identity $identity, Permission $permission = null)

Prüfen ob die Berechtigung gegeben ist. Wurde keine AccessList definiert ist die Berechtigung immer gegeben.

presenterClass
getPresenterObject()

Presenter aus Klassendefinition erstellen

initPresenter()

Initialisieren des Presenters

run(string $method, URI $route)

Presenter aufrufen

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.

runInternal(string $method, URI $route)

Interner Run Befehl

Map
getRouteParameterMap(ParameterMap $expectedParameters, URI $route)

No description

ParameterMap
getInitializedRouteParameters(string $method, URI $route)

Initialisierte Routing-Parameter

mixed
getUrlParameter(string $key, URI $route)

URL Parameter

type
getQueryParameter(type $key, URI $route, Parameter $parameter = null)

Query Parameter auslesen

setAccessControlList(AccessControlList $accessControlList = null)

Zugangsliste für die Route setzen, wird null übergeben so wird die interne Zugangsliste gelöscht.

AccessControlList|null
getAccessControlList()

Zugriffsliste

mixed
getBodyParameter(string $key, URI $route)

Body Parameter (POST, PUT)

mixed
getCookieParameter(string $key, URI $route)

Cookie Parameter

mixed
getRouteParameter(string $key, URI $route)

Route Parameter

Presenter
getPresenter()

Rückgabe des gesetzten Presenters

string
getPattern()

Rückgabe des gesetzten Suchmusters

string
getMethod()

Rückgabe der gesetzten Methode

ParameterMap
getParameter()

Parameter der Route

boolean
isFinale()

Abbruchkriterium

setTemplate(string $template)

Template für die URI setzen

string
getTemplate(Map $parameters = null)

Template der Route

setConfiguration(NodeList $nodes)

Setzt die Konfiguration

setLinks(NodeList $links)

Setzt die Verlinkung

Map
getLinks()

Linkliste der Route

initLinks(Closure $closure)

Funktion auf Basis der Linkliste aufrufen

initConfiguration(Closure $closure, array $nodes = null)

Konfiguration durchführen

string
__toString()

Zeichenkette

string
serialize()

Serialisieren der Route-Klasse

unserialize(object $serialization)

Unserialize

Details

at line 171
__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.

Parameters

string $method Methode (GET, POST, HEAD, PUT oder DELETE)
string $pattern Muster
string $presenterClass Presenter-Klassenname
string $id ID der Route

at line 209
Route setReferences(SimpleMap $references)

Referenzen auf andere Routen setzen

Parameters

SimpleMap $references

Return Value

Route

at line 219
SimpleMap getReferences()

Referenzen auf andere Routen

Return Value

SimpleMap

at line 230
SimpleMap getReference(string $method)

Referenzen auf andere Routen

Parameters

string $method Methode

Return Value

SimpleMap $references

at line 242
Route attachExceptionHandler(string $exception, Handler $handler)

Handler für Exception hinzufügen

Parameters

string $exception Exception
Handler $handler Handler für diese Exception

Return Value

Route

at line 257
Route setParameterSources(array $sources)

Reihenfolge der Auswertung. Wird ein leeres Array übergeben, so werden keine Parameter definiert.

Parameters

array $sources

Return Value

Route

at line 269
Route setParameter(ParameterMap $parameter)

Parameter der Route

Parameters

ParameterMap $parameter Parameter

Return Value

Route Dieses Objekt

at line 279
boolean isDefault()

Der Wert ist true, wenn die Route als Default gesetzt wurde.

Return Value

boolean

at line 290
Route setDefault(boolean $mode = true)

Defaultroute setzen

Parameters

boolean $mode

Return Value

Route

at line 310
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.

Parameters

string $method Methode
URI $route Route oder Route-ID

Return Value

boolean Ergebnis

at line 325
static bool matchRequest(string $routeId, string $routeMethod, string $routePattern, string $requestMethod, URI $requestUri)

Passt Route und Request Zusammen

Parameters

string $routeId
string $routeMethod
string $routePattern
string $requestMethod
URI $requestUri

Return Value

bool

at line 344
boolean hasPermission(Identity $identity, Permission $permission = null)

Prüfen ob die Berechtigung gegeben ist. Wurde keine AccessList definiert ist die Berechtigung immer gegeben.

Parameters

Identity $identity
Permission $permission

Return Value

boolean

at line 361
protected presenterClass getPresenterObject()

Presenter aus Klassendefinition erstellen

Return Value

presenterClass

Exceptions

NotFoundException
NullException
TypeException
ClassNotFoundException
ClassNotFoundException

at line 397
protected Route initPresenter()

Initialisieren des Presenters

Return Value

Route

Exceptions

NotFoundException
TypeException
ClassNotFoundException

at line 420
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.

Parameters

string $method Methode
URI $route Route ist der URL-String

Return Value

Route Dieses Objekt

at line 445
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.

Parameters

Exception $e
string $method
URI $route

Return Value

Route

Exceptions

Exception

at line 469
protected Route runInternal(string $method, URI $route)

Interner Run Befehl

Parameters

string $method Methode
URI $route Route ist der URL-String

Return Value

Route

Exceptions

RouteException

at line 500
protected Map getRouteParameterMap(ParameterMap $expectedParameters, URI $route)

Parameters

ParameterMap $expectedParameters
URI $route

Return Value

Map

Exceptions

RouteException

at line 581
ParameterMap getInitializedRouteParameters(string $method, URI $route)

Initialisierte Routing-Parameter

Parameters

string $method
URI $route

Return Value

ParameterMap

Exceptions

RouteException

at line 606
protected mixed getUrlParameter(string $key, URI $route)

URL Parameter

Parameters

string $key
URI $route

Return Value

mixed

at line 629
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.

Parameters

type $key
URI $route
Parameter $parameter

Return Value

type

at line 656
Route setAccessControlList(AccessControlList $accessControlList = null)

Zugangsliste für die Route setzen, wird null übergeben so wird die interne Zugangsliste gelöscht.

Parameters

AccessControlList $accessControlList

Return Value

Route

at line 666
AccessControlList|null getAccessControlList()

Zugriffsliste

Return Value

AccessControlList|null

at line 678
protected mixed getBodyParameter(string $key, URI $route)

Body Parameter (POST, PUT)

Parameters

string $key
URI $route

Return Value

mixed

at line 690
protected mixed getCookieParameter(string $key, URI $route)

Cookie Parameter

Parameters

string $key
URI $route

Return Value

mixed

at line 702
protected mixed getRouteParameter(string $key, URI $route)

Route Parameter

Parameters

string $key
URI $route

Return Value

mixed

at line 713
Presenter getPresenter()

Rückgabe des gesetzten Presenters

Return Value

Presenter Aktueller Presenter

at line 723
string getPattern()

Rückgabe des gesetzten Suchmusters

Return Value

string Suchmuster

at line 732
string getMethod()

Rückgabe der gesetzten Methode

Return Value

string Methode

at line 741
ParameterMap getParameter()

Parameter der Route

Return Value

ParameterMap Parameter

at line 754
boolean isFinale()

Abbruchkriterium

Gibt diese Methode true (standard) zurück, so werden vom Router keine weiteren Routen mehr betrachtet und die Verarbeitung abgebrochen.

Return Value

boolean true

at line 768
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.

Parameters

string $template Template

Return Value

Route Dieses Objekt

at line 799
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/

Parameters

Map $parameters Werte

Return Value

string Template für die URI

at line 827
Route setConfiguration(NodeList $nodes)

Setzt die Konfiguration

Parameters

NodeList $nodes Konfiguration

Return Value

Route Dieses Objekt

Setzt die Verlinkung

Parameters

NodeList $links Links

Return Value

Route Dieses Objekt

Linkliste der Route

Return Value

Map Linkliste

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
});

Parameters

Closure $closure Funktion

Return Value

Route Dieses Objekt

at line 962
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
});

Parameters

Closure $closure Funktion
array $nodes Array mit Nodes die verwendet werden sollen

Return Value

Route Dieses Objekt

at line 976
string __toString()

Zeichenkette

Return Value

string

at line 993
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.

Return Value

string

at line 1013
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.

Parameters

object $serialization