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

mixed
getSuperglobalParameter(string $key, URI $route)

Parameter von PHP geparsed

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

Parameters

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

at line 213
Route setReferences(SimpleMap $references)

Referenzen auf andere Routen setzen

Parameters

SimpleMap $references

Return Value

Route

at line 223
SimpleMap getReferences()

Referenzen auf andere Routen

Return Value

SimpleMap

at line 234
SimpleMap getReference(string $method)

Referenzen auf andere Routen

Parameters

string $method Methode

Return Value

SimpleMap $references

at line 246
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 261
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 273
Route setParameter(ParameterMap $parameter)

Parameter der Route

Parameters

ParameterMap $parameter Parameter

Return Value

Route Dieses Objekt

at line 283
boolean isDefault()

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

Return Value

boolean

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

Defaultroute setzen

Parameters

boolean $mode

Return Value

Route

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.

Parameters

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

Return Value

boolean Ergebnis

at line 329
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 348
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 365
protected presenterClass getPresenterObject()

Presenter aus Klassendefinition erstellen

Return Value

presenterClass

Exceptions

NotFoundException
NullException
TypeException
ClassNotFoundException
ClassNotFoundException

at line 401
protected Route initPresenter()

Initialisieren des Presenters

Return Value

Route

Exceptions

NotFoundException
TypeException
ClassNotFoundException

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.

Parameters

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

Return Value

Route Dieses Objekt

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.

Parameters

Exception $e
string $method
URI $route

Return Value

Route

Exceptions

Exception

at line 473
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 504
protected Map getRouteParameterMap(ParameterMap $expectedParameters, URI $route)

Parameters

ParameterMap $expectedParameters
URI $route

Return Value

Map

Exceptions

RouteException

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

Initialisierte Routing-Parameter

Parameters

string $method
URI $route

Return Value

ParameterMap

Exceptions

RouteException

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

URL Parameter

Parameters

string $key
URI $route

Return Value

mixed

at line 627
protected mixed getSuperglobalParameter(string $key, URI $route)

Parameter von PHP geparsed

Parameters

string $key
URI $route

Return Value

mixed

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.

Parameters

type $key
URI $route
Parameter $parameter

Return Value

type

at line 684
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 694
AccessControlList|null getAccessControlList()

Zugriffsliste

Return Value

AccessControlList|null

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

Body Parameter (POST, PUT)

Parameters

string $key
URI $route

Return Value

mixed

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

Cookie Parameter

Parameters

string $key
URI $route

Return Value

mixed

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

Route Parameter

Parameters

string $key
URI $route

Return Value

mixed

at line 741
Presenter getPresenter()

Rückgabe des gesetzten Presenters

Return Value

Presenter Aktueller Presenter

at line 751
string getPattern()

Rückgabe des gesetzten Suchmusters

Return Value

string Suchmuster

at line 760
string getMethod()

Rückgabe der gesetzten Methode

Return Value

string Methode

at line 769
ParameterMap getParameter()

Parameter der Route

Return Value

ParameterMap Parameter

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.

Return Value

boolean true

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.

Parameters

string $template Template

Return Value

Route Dieses Objekt

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/

Parameters

Map $parameters Werte

Return Value

string Template für die URI

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

Parameters

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

Return Value

Route Dieses Objekt

at line 1004
string __toString()

Zeichenkette

Return Value

string

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.

Return Value

string

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.

Parameters

object $serialization